Continua a non funzionare, mi dice file danneggiato... allora dev'esserci qualcos'altro che non va! Facciamo cosi guardiamo la situazione più in largo. Allora io ho una pagina dove mostro un'immagine e sotto c'è una select. Tu selezioni il formato della foto dalla select e parte il download. La select è in un form che punta alla stessa pagina. La pagina php inizia così:
Codice PHP:
/* PROVENGO DAL FORM DI DOWNLOAD DELLA FOTO */
if(isset($_POST['photo_size'])){
switch($_POST['photo_size']){
case 'big': $foto_selezionata = $nome_foto; break;
case 'medium': $foto_selezionata = $nome_prev; break;
case 'small': $foto_selezionata = $nome_thumb; break;
}
header("Expires: Mon, 12 Jul 1976 06:20:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($foto_selezionata).'"');
readfile($foto_selezionata);
}
il codice del form invece è questo:
Codice PHP:
echo "Scarica foto: \n";
echo "<form action=\"".currentPageURL()."\" method=\"post\" id=\"download_photo\" style=\"display:inline\">\n";
echo "<select name=\"photo_size\" onchange=\"invia_form('download_photo')\">\n";
echo "<option value=\"seleziona\" selected=\"selected\">-Formato-</option>\n";
list($width, $height, $type, $attr) = getimagesize($nome_foto);
echo "<option value=\"big\">$width x $height</option>\n";
if ($photo->preview!=$photo->nome){ // c'è anche una versione "medium" della foto oltre la versione normale e thumbnail
list($prev_width, $prev_height, $prev_type, $prev_attr) = getimagesize($nome_prev);
echo "<option value=\"medium\">$prev_width x $prev_height</option>\n";
}
list($thumb_width, $thumb_height, $thumb_type, $thumb_attr) = getimagesize($nome_thumb);
if($thumb_width<$width and $thumb_height<$height){
echo "<option value=\"small\">$thumb_width x $thumb_height</option>\n";
}
echo "</select>\n";
echo "</form>\n";
la funzione invia_form è una funzione di javascript che non fa altro che fare il submit del form partendo dall'id dello stesso