Пока буду искать по интернету, спрошу тут.
Обнаружил у себя на сайте проблему при скачивание файла. Бывает что не качается файл(белая страница). Возможно влияет на это названия файла, лишние символы.
Вот мой код, когда я жму скачать файл.
case 'save':
$filename = 'file/'. $file['id'] .'.dat';
$fn = $file['name'] . $file['ext'];
if (!file_exists($filename)) {
header ('HTTP/1.0 404 Not Found');
exit;
}
$fsize = filesize($filename);
$ftime = date("D, d M Y H:i:s T", filemtime($filename));
$fd = @fopen($filename, 'rb');
if (!$fd) {
header ('HTTP/1.0 403 Forbidden');
exit;
}
mysql_query("UPDATE `load_file` SET `loads` = `loads`+1 WHERE `id` = '". $file['id'] ."' LIMIT 1");
// Если запрашивающий агент поддерживает докачку
if ($HTTP_SERVER_VARS["HTTP_RANGE"]) {
$range = $HTTP_SERVER_VARS["HTTP_RANGE"];
$range = str_replace("bytes=", "", $range);
$range = str_replace("-", "", $range);
if ($range) {fseek($fd, $range);}
}
$content = fread($fd, filesize($filename));
fclose($fd);
if ($range) {
header('HTTP/1.1 206 Partial Content');
} else {
header('HTTP/1.1 200 OK');
}
header('Content-Disposition: attachment; filename='. $file['name'] .'_'. $file['android'] .'-[названия сайта]'.$file['ext']);
header('Last-Modified: '. $ftime);
header('Accept-Ranges: bytes');
header('Content-Length: '. ($fsize-$range));
header('Content-Range: bytes $range-'.($fsize -1).'/'.$fsize);
header('Content-type: application/octet-stream');
print $content;
exit;
break; Знаю, что код старый и убогий. Как решить проблему и можно усовершенствовать код? Если да, то подскажите как. Желательно написать примеры. Заранее спасибо.