2011-01-30 4 views
1

Я пытаюсь отправить 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) имеет идеальный контент.

С уважением,

ответ

0

Попробуйте отправить простой файл, чтобы увидеть, если он работает

send_file '/path/to.jpeg', :type => 'image/jpeg', :disposition => 'inline' 

Read this thread, я думаю, что у него есть все, что вам нужно.

+0

Оказалось, что перед отправкой мне пришлось «очистить» файл, созданный PDFTK. Извините, что не упоминал больше деталей в вопросе. – Dominic

Смежные вопросы