Я пытаюсь отправить PDF обратно пользователю, но у меня возникла серьезная проблема с получением send_file и send_data для работы. Я создал файл в формате PDF следующим образом:rails send_file и send_data отправляет файлы с нулевым байтом
tmp = Tempfile.new('filled')
new_tmp_path = PDFPrint.fill_form_using_pdftk(template_path, tmp.path)
send_file (new_tmp_path, :filename => 'filled.pdf')
Браузер запрашивает загрузку, но загруженный файл filled.pdf имеет нулевой байт. Я проверил, что new_tmp_path действительно содержит действительный PDF (хорошо, наполненная содержание)
Я попытался это:
File.open(new_tmp_path, 'r') do |f|
send_data(f.read, :filename => "filled.pdf")
end
Но это также дает мне проблему же download-> нулевой байт, в то время как файл на сервере (new_tmp_path) имеет идеальный контент.
С уважением,
Оказалось, что перед отправкой мне пришлось «очистить» файл, созданный PDFTK. Извините, что не упоминал больше деталей в вопросе. – Dominic