автоматическая загрузка php ie9

#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 (), которые на самом деле ничего не делают (т. Е. по крайней мере, половина)