#php #automation #download #internet-explorer-9
#php #автоматизация #Скачать #internet-explorer-9
Вопрос:
Привет, ребята, я пытаюсь заставить окно автоматической загрузки появляться, когда люди переходят на страницу. У меня это работает во всех браузерах, и теперь появился ie9, и хотя он загружается в конце, он говорит «Эта загрузка была прервана»
это то, что я использую с точки зрения кода
// set headers
header("Expires: Mon, 26 Jul 1997 05:00:00 GMTn");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename="$download[file]";nn");
header( 'Content-Description: File Transfer' );
header("Content-Type: ".$mtype);
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".(string)$size.";n");
//get a chunk of the file
$chunksize = 1*(1024*1024); // how many bytes per chunk
$buffer = '';
//downloads file
$handle = fopen($download_file, 'rb');
if ($handle === false) {
}
//write to the browser for download
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
echo $buffer;
ob_flush();
flush();
if ($retbytes) {
$cnt = strlen($buffer);
}
}
exit;
Есть идеи?
Комментарии:
1. Почему у вас отправляются два
Content-Description: File Transfer
заголовка?2. вы получили 2 содержимого-Описание: ‘s и нет необходимости в
n's
в заголовках3. содержимое 2-Описание: Передача файлов — это было!, Я не знаю, как вам помочь — я нажал стрелку рядом с вашим комментарием, но в любом случае, ура, это поставило нас в тупик на большую часть утра!
4. Еще раз спасибо за ваши комментарии, я удалил некоторые заголовки и очистил код, который я пробовал readfile, но эти файлы довольно большие, и, похоже, это не хочет работать. Загрузка стала лучше, но я все еще получаю прерываемое сообщение. На самом деле даже с небольшими файлами возникают проблемы — мне интересно, связано ли это с моим подключением к Интернету. Если есть какие-либо другие идеи, мы были бы очень признательны.
Ответ №1:
Вместо несколько сложного вывода файла, который вы делаете, я бы просто использовал readfile вместо этого:
// set headers
header("Expires: Mon, 26 Jul 1997 05:00:00 GMTn");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename="$download[file]";nn");
header( 'Content-Description: File Transfer' );
header("Content-Type: ".$mtype);
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".(string)$size.";n");
readfile($download_file);
exit;
Посмотрим, сработает ли это.
Комментарии:
1. 1 … и теряются операторы header (), которые на самом деле ничего не делают (т. Е. по крайней мере, половина)