Carrierwaveを使用してRailsアプリケーションにPDFをアップロードしています。私の目的は、PDFの各ページをPNGに変換し、これらの各PNGが私のモデルなどに基づいてCarrierwaveが作成するアップロードディレクトリに存在することを確認することです。
現在の進捗状況は、PDFをアップロードし、Carrierwaveが作成する一時ディレクトリで一連のPNGに変換することはできますが、これらの変換された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))
私がぶつかったこの壁を乗り越えるのを助けるためにどんな提案も歓迎されるでしょう。
操作ロジックを使用しない理由に関する補足として、サンプルコード(以下を参照)は上記と同じ結果になります。つまり、Carrierwaveによって作成された一時ディレクトリに変換されたファイルがありますが、変換されたすべての画像は.pdfファイルのままです。拡大。
manipulate!(:format => :png) do |img|
img
end