Просмотр поста #69938: >>>ВОПРОСЫ НОВИЧКОВ<<<

.
mRWiNeT
#НетВойне #NoWar #НіВійні

Пока буду искать по интернету, спрошу тут.

Обнаружил у себя на сайте проблему при скачивание файла. Бывает что не качается файл(белая страница). Возможно влияет на это названия файла, лишние символы.
Вот мой код, когда я жму скачать файл.

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;

Знаю, что код старый и убогий. Как решить проблему и можно усовершенствовать код? Если да, то подскажите как. Желательно написать примеры. Заранее спасибо.