Ciao a tutti,
dovrei creare un tasto per salvare un'immagine su di una pagina web, proprio per questo motivo mi stavo cimentando nella creazione della pagina php che deve compiere l'operazione.
La pagina è download.php e contiene il seguente codice :
codice:
<?php
$imageName = "newimg_249af70fbde4e2f94f20f7379426123e.jpg";
$imgdir = "C:/Inetpub/wwwroot/php/project/img_temp_uploads/newimg_249af70fbde4e2f94f20f7379426123e.jpg";
$imageLoc = "http://localhost/project/img_temp_uploads/newimg_249af70fbde4e2f94f20f7379426123e.jpg";
$fsize = filesize($imgdir);
header("Cache-Control: public, must-revalidate");
header("Content-Type: application/octet-stream");
header("Content-Length: " . $fsize );
header("Content-Disposition: attachment; filename=" .$imageName);
header("Content-Transfer-Encoding: binary\n");
$fp = fopen($imageLoc, "rb");
$buffer = fread($fp, $fsize);
fclose ($fp);
print $buffer;
?>
la pagina eseguita non riporta errori, apre il menù di apertura/salvataggio di windows riportandomi l'esatta dimensione in Kb dell'immagine e mi permette di salvarla.
Il problema sta nell'immagine che viene salvata.. infatti su 39Kb (dimensione totale) ne salva circa la metà 15 o 16Kb, infatti aprendola mi compare l'immagine incompleta con la parte non visualizzata in grigio.
Ho verificato l'ammontare del filesize, effettivamente è 40004, la radice quadrata è 200 (200x200), mentre il filesize effettivo dovrebbe essere 119600 ottenuto da 400x299, allora ho provato a dare a $fsize un valore fisso di 119600 o maggiore ma il risultato è sempre lo stesso, l'immagine risulta più grande di dimensione Kb ma rimane ugualmente incompleta se visualizzata.
Qualcuno ha qualche suggerimento? Da cosa può dipendere?