ma che tipo di file e' ???
che versione di PHP hai ?
l' unica cosa che mi viene in mente e' che il file_get_contents non riesca a leggerlo bene, vuoi perche' e' un dato binario o encodato in modo particolare, vuoi per altro ... magari e' un file nato "troncato" ... uhm, prova questa e dimmi se cambia qualcosa ...
codice:
function forceDownload( &$file ) {
/**
* Function forceDownload:
* download any type of file if it exists and is readable
* -------------------------------------
* @author Andrea Giammarchi
* @date 24/02/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 = '';
$fo = &fopen( $file, 'rb' );
while( !feof( $fo ) ) {
$content .= fgets( $fo );
}
fclose( $fo );
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);
}
}
ultima domanda .... di che dimensione e' il file ??