Ciao a tutti.
Sto utilizzando una galleria in php che pesca le immagini da una determinata cartella.
Fino qui tutto bene. Ma vorrei fare in modo che quando clicco sulle immagini, invece di aprire il file jpg aprisse un determinato file zip collegato all'immagine.
Per intenderci devo creare una pagina con varie foto che cliccandoci sopra permettano di scaricare un archivio. Ma dev'essere automatico per permettere all'utente di caricare i file nelle cartelle. (Ad esempio il file prato.jpg nella cartella "immagini" fa scaricare l'archivio prato.zip nella cartella "archivi" ).
Vi allego il codice che finora permette di creare la galleria.
Grazie!

galleria.php

<?php
// Configurazione della galleria
// ---------------------------------


// percorso della cartella contenente le immagini ORIGINALI
$path_immagini = "image_files/";
// percorso della cartella che dovrà contenere le anteprime
$path_anteprime = "ante_files/";


// numero di righe e colonne della tabella che mostrerà le anteprime
$num_righe = 10;
$num_colonne = 3;


// larghezza ed altezza massima delle anteprime
$larghezza_ant = 150;
$altezza_ant = 150;
// ---------------------------------




// provo ad "aprire" la cartella delle immagini originali
$handle = @opendir($path_immagini);


// se c'è stato un errore...
if(!$handle)
die ("Errore nell'apertura della cartella delle immagini '$path_immagini'");


// inizializzo l'array che conterrà i nomi delle immagini
$immagini = array();


// memorizzo in $immagini tutti i nomi delle immagini (JPG) presenti nella cartella degli originali
while (false !== ($file = readdir($handle)))
{
if ($file != '.' && $file != '..' && strpos($file,'.jpg'))
{
if(strpos($file,'.jpg'))
$immagini[] = $file;
}
}


// metto in ordine alfabetico le immagini
sort($immagini);


// calcolo il numero dell'ultima pagina
$ultima_pagina = ceil(count($immagini) / ($num_righe * $num_colonne));


// decido che pagina mostrare
if(isset($_GET['pag']))
{
// se è nell'URL è presente un numero di pagina
if(is_numeric($_GET['pag']) && $_GET['pag'] > 0 && $_GET['pag'] <= $ultima_pagina)
{
// se il numero di pagina indicato è lecito
$pag_corrente = $_GET['pag'];
}
else
{
// nell'URL è stato messo un numero di pagina errato.
// l'utente sta "giocando" con il nostro script !!!
header('location: galleria.php?pag=1');
exit;
}
}
else
{
// se non è stato specificato nulla via URL mostro la prima pagina
$pag_corrente = 1;
}


// quale sarà la prima immagine da mostrare nella pagina corrente?
$immagine_iniziale = ($pag_corrente-1) * $num_righe * $num_colonne;


// Costruisco dei link per accedere alla pagina precedente e successiva (se esistono!)
$navigatore = '';
if($pag_corrente > 1)
$navigatore .= '<a href="galleria.php?pag='.($pag_corrente-1).'">&lt;&lt; Precedente</a> ';


if($pag_corrente < $ultima_pagina)
$navigatore .= '<a href="galleria.php?pag='.($pag_corrente+1).'">Succ essiva &gt;&gt;</a>';


// adesso devo costruire la tabella che conterrà le anteprime
$tab_immagini = '';
// il primo cliclo FOR è per costruire le righe
for ($i = 0; $i < $num_righe ; $i++)
{
// se all'inizio di una riga mi accorgo che non ci sono più immagini da visualizzare
// allora interrompo le iterazioni
if(!isset($immagini[($i*$num_colonne) + $immagine_iniziale]))
break;


// apro la riga corrente
$tab_immagini .= '<tr>';


// il secondo ciclo FOR serve invece a costruire le singole celle apparteneti ad una riga
for ($j = 0; $j < $num_colonne; $j++)
{
// l'indice dell'immagine da mostrare nella cella corrente
$indice = ($i*$num_colonne) + $j + $immagine_iniziale;


// se esiste una immagine con questo indice (potrebbero essere finite!)
if(isset($immagini[$indice]))
{
// controllo che esista l'anteprima per l'immagine corrente
// in caso contrario la creo "al volo"
if(!file_exists($path_anteprime.$immagini[$indice]))
crea_anteprima($immagini[$indice],$larghezza_ant,$altezza_ant,$path_immagini,$path_ anteprime);


// ricavo le dimensioni dell'anteprima corrente
list($width, $height) = getimagesize($path_anteprime.$immagini[$indice]);


// non mi resta che creare i tag per il link, l'immagine ed i nome dell'immagine
$cella = '<a href="'.$path_immagini.$immagini[$indice].'">';
$cella .= '<img src="'.$path_anteprime.$immagini[$indice].'" alt="'.$immagini[$indice].'" height="'.$height.'" width="'.$width.'">';
$cella .='<br><p align="center">' . $immagini[$indice] . '</p>';
$cella .='</a>';
}
else
{
// sono finite le immagini! Lascio la cella vuota
$cella = '&nbsp;';
}


// metto il contenuto della cella appena creata nella tabella
$tab_immagini .= '<td class="cella_immagine" align="center" valign="middle">'. $cella . '</td>';
}


// chiudo la riga corrente
$tab_immagini .= '</tr>';
}


// tutto il contenuto "dinamico" è stato preparato, devo solo caricare il template che si occuperà di mostrarlo
// per proteggermi dal caricamento del template esternamente allo script definisco una costante...
define('LOAD_TEMPLATE',1);
include('template.php');


// fine dello script
exit;






?>


template.php

<?php
if(!defined('LOAD_TEMPLATE'))
exit('Accesso diretto non consentito!');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Galleria immagini</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
}
#main_tab {
position:absolute;
top:0px;
left:0px;
}
.cella_immagine {
background-color: #FFFFFF;
}
#header_tab {
background-color: #FFFFFF;
}
img {
border: none;
}
-->
</style>
</head>


<body>
<table border="0" align="center" cellpadding="5" cellspacing="0" id="main_tab">
<tr>
<td>
<table width="100%" border="0" cellspacing="5" cellpadding="5" id="header_tab">
<tr>
<td><div align="left">Pagina <?php echo $pag_corrente?>/<?php echo $ultima_pagina?> </div></td>
<td><div align="right"><?php echo $navigatore?></div></td>
</tr>
</table>
<table width="100%" border="0" cellspacing="5" cellpadding="5">
<?php echo $tab_immagini?>
</table></td>
</tr>
</table>
</body>
</html>



Grazie ancora!!