Разрешить пользователю загружать файлы, созданные с помощью ajax - PullRequest
0 голосов
/ 29 октября 2018

Я использую PHPWord для генерации документов MS Word в php. Он отлично работает, и я могу создать файл и сохранить его на своем сервере с помощью ajax-запроса, но после его создания мне нужно разрешить пользователю загружать его.

Должно быть каким-то образом я могу сериализовать файл и передать его обратно в ответе ajax, а затем поставить его в очередь для загрузки в javascript? Я мог бы использовать любой совет о том, как сделать это с файлом

после создания файла я попытался в php:

 $wordFile = file_get_contents('helloWorld2018.docx');

, а затем попытался вернуть его, но, конечно, я получил ошибку, когда попытался преобразовать ее в переменную JSON. Можно ли как-нибудь сериализовать это, передать через JSON, а затем поставить в очередь на скачивание? Я использую Jquery и Codeigniter кстати

спасибо

1 Ответ

0 голосов
/ 29 октября 2018

Ну, это то, что я нашел. У Хуана был правильный ответ, но он получил огромное отрицательное мнение за то, что он не объяснил, как это делается, или объяснил, что window.location не будет перенаправлять пользователя, если он указывает на файл, он просто ставит в очередь загрузку, что идеально

Я использую Codeigniter, поэтому после создания файла этот контроллер называется 'Download'

    header("Cache-Control: no-cache");
    header("Content-Description: File Transfer");
    header("Content-Disposition: attachment; filename=hellowWorld2018.docx");
    header("Content-Transfer-Encoding: binary");    
    readfile("helloWorld2018.docx");

Затем в функции успеха ajax я просто говорю window.location = 'download', и он загружает файл.

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

...