2014-08-25 4 views
1

Я использовал бумагу скрепки, чтобы добавить функцию загрузки для PDF-файла. В загружать работы, когда загружено, файл сохраняется в местеКак получить доступ к файлу скрепки для чтения PDF-файлов?

/system/uploaded_files/sources/000/000/006/original/file.pdf 

теперь я пытаюсь получить доступ к этому с помощью Reader PDF

require 'pdf-reader' 
require 'open-uri' 
reader = PDF::Reader.new(open('/system/uploaded_files/sources/000/000/006/original/file.pdf')) 

Я получаю следующую ошибку

Errno::ENOENT: No such file or directory - /system/uploaded_files/sources/000/000/006/original/file.pdf 

Как получить доступ к этому файлу с помощью камкордера PDF-Reader?

+0

что, если вы передаете его экземпляр? – emerak

+0

На самом деле я сначала попытался создать экземпляр и передать его, не работал, поэтому я попробовал исходный url. – Venomoustoad

+0

как бы вы могли передать экземпляр? как правильный URL. Это то, что я пробовал: читатель = PDF :: Reader.new (open (@ uploaded_file.source.url)) – Venomoustoad

ответ

1

Предположим, что ваша модель называется PDF, а актив сохраняется как file.

class Pdf < ActiveRecord::Base 
    has_attached_file :file 
end 

Теперь попробуйте это:

p = Pdf.find(params[:id]) # get the object 
reader = PDF::Reader.new(open(p.file.url)) 
+0

Я попробовал это, но по какой-то причине файл, который был поднят, все еще говорит «Нет такого файла или каталога - /system/files/sources/000/000/009/original/abcd.pdf?1410198957», однако, когда i запустите это на консоли после добавления публики спереди и удаления? 1410198957, он читает ее. Какая у нас проблема? – Venomoustoad

+0

не уверен, где вы это делаете - контроллер? Если он работает в консоли, он также должен работать в вашем коде. В запросе может возникнуть проблема, когда вы получаете запись. Вы уверены, что используете 'p.file.url', а не' p.file.path'. Попробуйте распечатать 'p.file.url' непосредственно перед кодом считывателя и посмотреть, правильный ли этот URL/доступ. –

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