Ресурс интерпретируется как Документ, но передается с помощью консоли приложения / потока октетов MIME

У меня есть система управления файлами, которую я создаю, где разрешены только zip-файлы. Я не хочу, чтобы кто-нибудь видел, где файл хранится на сервере, поэтому я использую ajax-вызов php-файла, который выполняет следующее:

if (!empty($find_url)) {
foreach ($find_url as $file) {
$dl =  urldecode($file->file_url);
}
$file_headers = @get_headers($dl);
if($file_headers[0] == 'HTTP/1.1 404 Not Found') {
$exists = false;
} else {

$exists = true;
header('Content-Type: application/zip');
header("Content-Transfer-Encoding: Binary");
header('Location: '.$dl);

}
}

Файл загружается нормально, но выдает консольное сообщение, указывающее местоположение файла:

Resource interpreted as Document but transferred with MIME type application/octet-stream:
"http://www.exmple.co.uk/someplace/filename.zip".

1

Решение

Кажется, это нормально для chrome, когда мы пытаемся загрузить любой файл напрямую, введя его URL в браузере. Пробовал скачивать Chrome, Firefox & GitHub для окон и все они ведут себя одинаково на Chrome.

Давая ссылку для скачивания, вы можете исправить это, добавив атрибут загрузки внутри тега.

<a href="http://www.exmple.co.uk/someplace/filename.zip" download>Download File</a>
0

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

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