PHP: использовать эхо после чтения файла - PullRequest
0 голосов
/ 04 марта 2019

Я занимаюсь разработкой веб-приложения.

Пользователь может загрузить определенный zip-файл, используя readfile (), если zip был сгенерирован правильно.

Но так как я интегрировалстрока readfile (), я не могу ничего повторить до или после этой строки.Вот пример кода, вызывающий проблему:

 if($zip->status == 0){

    $zip->close();

    $file_url = './zip/'.$userDir.'.zip';
    header('Content-Type: application/octet-stream');
    header("Content-Transfer-Encoding: Binary");
    header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
    readfile($file_url);

    echo'
    <div class="alert alert-primary" role="alert">
    Success
    </div>';

  }

Все в условии вызывается, кроме эхо-строк в конце.Когда я удаляю строку readfile ($ file_url), вызывается эхо.

Я также пытался переместить строки эха до строки

$file_url = './zip/'.$userDir.'.zip';

И это тоже не работает.Я что-то упустил?

1 Ответ

0 голосов
/ 04 марта 2019

Если вы откликаетесь после «отправки файла» пользователю, вы собираетесь испортить файл.

Вы должны думать как php-код как ссылка для скачивания, пользователь нажимает на него и получаетфайл.Также отправка эха не идет на экран пользователя, так как у вас есть эти заголовки

header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
...