私は本当に近くにいる必要があるように感じますが、これを正しく機能させることはできません。
phonegapアプリからrailsアプリ(3.1.1 ruby 1.8.7 btw)にファイル転送を使用して画像を送信しています。
ファイルをファイルシステムに書き込みたい。
これはparamsハッシュです:
Parameters: {"file"=>#<ActionDispatch::Http::UploadedFile:0x7f1e2baa94e8 @tempfile=#<File:/tmp/RackMultipart20120607-5707-owzii5-0>,
@headers="Content-Disposition: form-data; name=\"file\"; filename=\"image.jpg\"\r\nContent-Type: image/jpeg\r\n",
@content_type="image/jpeg", @original_filename="image.jpg">}
基本的に、params [:file]を介してファイルにアクセスできます。次に、そのイメージをファイルシステムに書き込む必要があります。画像に対応するモデルがないので、ペーパークリップは必要ありません。今、私が思いつくことができる最高のものはこれです:
open(params[:file]) do |image|
File.open("theiamge.jpg","wb"){|file| file.puts image.read }
end
これは私が得るエラーです:
TypeError (can't convert ActionDispatch::Http::UploadedFile into String):
編集:
だから、これはかなり奇妙です。これらのコマンドをirbで機能させることができます。
File.open('newimage.jpg', 'wb') do |f|
f.write File.open('oldimage.jpg').read
end
ただし、これは機能しません。
File.open("ihatedetails.jpg",'wb') do |f|
f.write File.open(params[:file]).read
end
このエラーが発生します:TypeError(ActionDispatch :: Http :: UploadedFileを文字列に変換できません):
irbでruby1.9.3を使用していますが、これらのコマンドは同じである必要があります...
だから私は今困惑しています。