PHP-скрипт для загрузки и возобновления больших файлов & gt; 10 ГБ

Я хочу, чтобы PHP-код загружал файлы размером более + 5 ГБ и resumeable

Я вижу мультикод здесь и на других сайтах, но весь этот код загружает максимум 2 ГБ и остановлен или не может быть возобновлен!

Пример для одного из этого кода: У меня есть файл (4 ГБ), сценарий только для загрузки (2 ГБ) и остановлен или загрузить 4 ГБ, но не могу возобновить его!

наконец: я использую этот код ниже, который может загружать большие файлы, но не может возобновить работу после 2 ГБ, где он возвращается к первому -_-

function smartReadFile($location, $filename)
{ if(!file_exists($location))
{ header ("HTTP/1.0 404 Not Found");
return;
}

$size=filesize64($location);
$time=date('r',filemtime($location));

$fm=@fopen($location,'rb');
if(!$fm)
{ header ("HTTP/1.0 505 Internal server error");
return;
}

$begin=0;
$end=$size;

if(isset($_SERVER['HTTP_RANGE']))
{ if(preg_match('/bytes=\h*(\d+)-(\d*)[\D.*]?/i', $_SERVER['HTTP_RANGE'], $matches))
{ $begin = floatval($matches[1]) ;
if( !empty($matches[2]) ) {
$end = floatval($matches[1]);
}
}
}if($begin>0||$end<$size)
header('HTTP/1.0 206 Partial Content');
else
header('HTTP/1.0 200 OK');

$get_type= mime_content_type($location);
$path_parts = pathinfo($location);
$file_ext   = $path_parts['extension'];
$ctype_default = "application/force-download";

$content_types = array(
"exe" => "application/octet-stream",
"zip" => "application/zip",
"rar" => "application/x-rar",
"avi" => "video/x-msvideo",
"apk" => "application/vnd.android.package-archive",
"text" => "text/plain",

"mp4" => "video/mp4",
"mp3" => "video/mp3",

);
$ctype = isset($content_types[$file_ext]) ? $content_types[$file_ext] : $ctype_default;

header("Content-Type: " . $ctype);
header('Cache-Control: public, must-revalidate, max-age=0');
header('Pragma: no-cache');
header('Accept-Ranges: bytes');
header('Content-Length:'.($end-$begin));
header("Content-Range: bytes $begin-$end/$size");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Transfer-Encoding: binary\n");
header("Last-Modified: $time");
header('Connection: close');

$cur=$begin;
fseek($fm,$begin,0);

while(!feof($fm)&&$cur<$end&&(connection_status()==0))
{ print fread($fm,min(10240*16,$end-$cur));
$cur+=10240*16;

}
}

Этот код может загружать файлы любого размера и возобновлять его, но при доступе к 2 ГБ, если вы остановили его и возобновите, вы вернетесь к первому

Пожалуйста, решите мою проблему или дайте мне поддержку кода скачать большой файл + 5 ГБ и возобновить

Я использую Wamp Server, Windows Server 2012 x64

Спасибо

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]