Mot,
$url = 'https:// путь к файлу';
$name = 'имя файла example.zip';
header('Content-Length: ' . $len); эту строку можно и не писать, должно работать, но лучше вычислить размер для больших файлов
$len получить через эту функцию
function getFileSize(string $url): int
{
$head = get_headers($url, true);
return $head['Content-Length'];
}
вызывай так header('Content-Length: ' . getFileSize($url));
ob_get_level() && ob_end_clean();
header($_SERVER['SERVER_PROTOCOL'] . ' 200 OK');
header('Content-Type: application/force-download');
header('Content-Description: inline; File Transfer');
header('Content-Transfer-Encoding: binary');
header('Content-Disposition: attachment; filename="' . $name . '";', false);
header('Content-Length: ' . $len); // вот тут замени, если файлы маленькие, то можно и не писать
$upload = new SplFileObject($url, 'rb');
while (!$upload->eof()) {
echo($upload->fgets());
}
flush();
exit;
ну и вроде у тебя должно быть включен allow_url_fopen
Изменил: Вантуз-мен (28.02.2022 / 02:28)