Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Передача файла в клиент (https://javascript.ru/forum/jquery/72837-peredacha-fajjla-v-klient.html)

zaikv 01.03.2018 23:56

Передача файла в клиент
 
Добрый день! Я генерирую pdf файлы с помощью wkhtmltopdf, и вывожу из на экран или передаю на скачку в зависимости от header('Content-Disposition: ). Файл сначала создается, а потом удаляется после вывода.

Появилась задача прикрепления файла к email письму, поэтому сейчас отправляется аякс запрос к скрипту генерации файла и возвращается путь к файлу, а удаление после отправки письма, но может случиться что форму отправки письма могут закрыть и файл не будет удален. В связи с этим несколько вопросов?
1. Можно ли передавать аяксом сразу файл, мне на ум приходит только file_get_contents(т.к. передаю в формате json)
2. Где хранить и как хранить полученный файл в html, записывать в textarea? Надо чтобы он был в форме и отправлялся на сервер вместе с остальными данными отправки почты.
3. Надо ли кодировать содержимое файла перед его отправкой в клиент?

Желательно чтобы пользователь мог просмотреть полученный файл перед сохранением формы.

laimas 02.03.2018 11:49

Цитата:

Сообщение от zaikv
Можно ли передавать аяксом сразу файл, мне на ум приходит только file_get_contents

Генерация PDF на сервере же производится?

zaikv 02.03.2018 18:31

Да, генерация пдф на сервре.
Сейчас в модульном окне пользователь заполняет данные для отправки почты и может инициировать прикрепления счета к письму(а может и нет), счет должен передаться в форму аяксом.
В принципе можно было бы реализовать простым чек боксом и прикреплять счет на сервере, но хотелось бы чтоб пользователь мог лткрывать/просматривать полученный счет.

laimas 02.03.2018 18:45

Конвертор html в pdf ведь все готовит в памяти, и если в этом классе к ней есть доступ, то не сохраняйте результат в файл, пишите его в сессию, из которой забирайте на отправление. Либо готовить его по отправлению почты, и сразу из памяти в почтовой отправление.


Часовой пояс GMT +3, время: 08:34.