Мне нужно скрыть внешние ссылки на файлы от пользователя. Пользователь нажимает кнопку загрузки, которая ссылается на мою функцию, в которой файл загружается и возвращается к клиенту, проблема в том, что я не знаю, какое расширение загруженного файла
, поэтому я загружаю файл через "get_file_contents" и прочитайте оригинальное имя файла из заголовка, но оно не подходит для больших файлов
Я изначально использовал readfile, но были случаи, когда некоторые файлы были заархивированы
текущий код
$sUrl = ... external url;
$sFileName = '';
$context = stream_context_create();
$mResult = file_get_contents($sUrl, false, $context);
foreach($http_response_header as $header) {
if (strpos($header, 'Location:') !== false) {
$sFileName = basename(trim(str_replace('Location:', '', $header)));
break;
}
}
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename={$sFileName}");
echo $mResult;
exit();
как скрыть внешнюю ссылку на загруженный файл и одновременно вернуть очень большие файлы клиенту?