Witam.
Skrypt powoduje pobranie pliku o danym ID.
<?php session_start();
include ('config.php'); // plik z konfiguracją strony
include('core.php'); // plik z funkcjami
$id = check_input($_GET['idf']);
$sql = mysql_query("SELECT * FROM `gu_files` WHERE `id_file` = '$id'");
while ($rek = mysql_fetch_array($sql)) {
$id_file = $rek['id_file'];
$id_user = $rek['id_user'];
$nazwa_pliku = $rek['nazwa_pliku'];
$rozszerzenie = $rek['rozszerzenie'];
$hash = $rek['hash'];
$size = round($rek['size'] / 1024,1) . ' KB';
}
$filename = $hash . '.' . $rozszerzenie;
$dir = "files/$id_user/";
if(ini_get('zlib.output_compression')){ ini_set('zlib.output_compression', 'Off'); }
$file_extension = strtolower(substr(strrchr($filename,"."),1));
if( $filename == ""){
echo "<html><title>Document Downloads</title><body>Error: No such file to download.</body></html>";
exit;
}
$path = $dir.$filename;
switch( $rozszerzenie ){
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "docx": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "xlsx": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: ".$ctype);
header("Content-Disposition: attachment; filename=\"".basename($nazwa_pliku.".".$rozszerzenie)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($dir.$filename));
//readfile($dir.$filename);
//readfile($path);
header('X-Sendfile: '.$path);
exit();
?>
Problem polega na tym, że byle jaki plik pobiorę to jest on jakby uszkodzony.
Txt jest puste, a zip piszę ma niewłaściwy format lub jest uszkodzone.
Co może być przyczyną, że pobrane pliki się uszkadzają?