Я создаю веб-сайт на своем локальном хосте, который должен позволить людям загружать некоторые файлы .rar.
В моем индексе я создал несколько таких тегов:
$filename = "Test001.rar";
<a href="download.php?file='.$filename.'">'.$filename.'</a>';
Это всего лишь пример одного файла, но в моем php-файле «download.php» у меня возникла проблема, когда я хочу загрузить файл .rar.
Это загрузка.php
<?php
echo "Welcome to Knowledge!";
if (isset($_GET['file']) && basename($_GET['file']) == $_GET['file'])
{
$file = $_GET["file"];
$path = 'C:\xampp\htdocs\TestSite'."\\".$file;
}
$err = $path.'Sorry, the file you are requesting doesnt exist.';
if (file_exists($path) && is_readable($path))
{
//get the file size and send the http headers
$size = filesize($path);
header('Content-Type: application/x-rar-compressed, application/octet-stream');
header('Content-Length: '.$size);
header('Content-Disposition: attachment; filename='.$file);
header('Content-Transfer-Encoding: binary');
readfile($filename);
}
?>
Он открывает поток правильно, но я понимаю, что размер файла составляет около 200 байт, а не полная длина, которая составляет около 200 МБ.
Как я могу решить эту проблему?
ini_set('memory_limit', '-1');
в качестве быстрого решения, пока кто-нибудь не предложит это сделать. - person Drakes   schedule 21.06.2015