1
我正在使用Carrierwave在我的Rails應用程序中上傳PDF。我的目標是將PDF中的每個頁面轉換爲PNG,並確保這些PNG中的每一個駐留在Carrierwave基於我的模型創建的上傳目錄中。使用Carrierwave將多頁PDF處理爲PNG
當前的進度是我可以上傳PDF,將其轉換爲臨時目錄的一系列PNG格式的那個Carrierwave創建,但我不能制定出正確的方法來移動這些轉換PNG圖片到指定上傳目錄:
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
更新 - 增加了我的電流以下嘗試和錯誤代碼
我當前的代碼如下:
def extract(format)
cache_stored_file! if !cached?
images = Magick::ImageList.new(current_path)
images.write File.dirname(current_path) << "/" << filename
end
def filename
super != nil ? super.split('.').first + '.png' : super
end
所有嘗試移動使用任何方式在某種「沒有這樣的文件或目錄」錯誤的上傳目錄結果的文件。例如使用:
images.each do |f|
FileUtils.mv f.filename, File.join("#{Rails.root}/#{store_dir}", "image-0.png")
end
Errno::ENOENT (No such file or directory -
(/Users/reggie/ExampleApp/public/uploads/tmp/20120611-2259-7520-3647/image-0.png,
/Users/reggie/ExampleApp/public/uploads/painting/image/39/image-0.png))
歡迎任何建議,以幫助我穿過我碰到的這堵牆。
正如一個側面說明,爲什麼我不使用的manipulate邏輯,示例代碼(見下文)的結果與上面相同,即由Carrierwave創建的臨時目錄轉換後的文件,然而全部轉換後的圖片保留.pdf文件擴展名。
manipulate!(:format => :png) do |img|
img
end