Originariamente inviato da Lisa79
Mi da un sacco di errori con l'header...
E' da questa mattina che cerco di farlo funzionare...
ma hai provato la mia funzione ?
inutile dire che non puo' essere inclusa in nessun file che ha gia' stampato a video qualunque cosa , che utilizza sessioni o che ha parti di codice html o di testo a inizio pagina ... l' errore e' al 99% quello perche' quella funzione e' nata proprio con un test su un file di tipo .txt
in pratica, fatti una pagina a parte dove passi l' immagine in get o post ...
file download.php
codice:
<?php
function forceDownload( &$file ) {
/**
* Function forceDownload:
* download any type of file if it exists and is readable
* -------------------------------------
* @author Andrea Giammarchi
* @date 18/01/2005
* @compatibility PHP >= 4.3.0
*/
if( file_exists( $file ) == true && is_readable( $file ) == true ) {
$filename = &basename( $file );
if( strpos( $_SERVER['HTTP_USER_AGENT'], 'MSIE' ) !== false ) {
$parsename = &explode( '.', $filename );
$last = count( $parsename ) - 1;
$filename = &implode( '%2E', array_slice( $parsename, 0, $last ) );
$filename .= '.'.$parsename[$last];
}
$content = &file_get_contents( $file );
header( 'Content-Type: application/octet-stream' );
header( 'Content-Disposition: attachment; filename='.$filename );
header( 'Content-Length:'.strlen( $content ) );
header( 'Content-Transfer-Encoding: binary' );
echo $content;
exit(0);
}
}
if( isSet( $_GET['file'] ) == true ) {
$_GET['file'] = &urldecode( $_GET['file'] );
forceDownload( $_GET['file'] );
}
?>
basta, senza altro ... prova e vedrai che funziona ma occhio che on-line e' pericolosa, rischi di far scaricare pagine php, sorgenti o passwords, devi aggiungere solo filtri migliori per il file da scaricare