rails send_file и send_data отправляет файлы с нулевым байтом

Я пытаюсь отправить pdf обратно пользователю, но у меня серьезные проблемы с работой send_file и send_data. Я создал файл pdf следующим образом:

tmp = Tempfile.new('filled')
new_tmp_path = PDFPrint.fill_form_using_pdftk(template_path, tmp.path)
send_file (new_tmp_path, :filename => 'filled.pdf')

Браузер запрашивает загрузку, но загруженный файл fill.pdf имеет нулевой байт. Я проверил, что new_tmp_path действительно содержит действительный pdf (хороший, заполненный контент)

Я пробовал это:

File.open(new_tmp_path, 'r') do |f|
  send_data(f.read, :filename => "filled.pdf")
end

Но это также дает мне ту же проблему загрузки-> нулевого байта, в то время как файл на сервере (new_tmp_path) имеет идеальное содержимое.

С уважением,


person Dominic    schedule 30.01.2011    source источник


Ответы (1)


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

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

Прочтите эту ветку, я думаю, в ней есть все, что вам нужно.

person Mirko    schedule 30.01.2011
comment
Оказалось, что мне нужно было сбросить файл, созданный PDFTK, перед его отправкой. Извините, что не упомянул более подробную информацию в вопросе. - person Dominic; 10.02.2011