我觉得我应该非常接近,但我无法让它正常工作。
我正在使用文件传输将图像从我的 phonegap 应用程序发送到我的 rails 应用程序(3.1.1 ruby 1.8.7 btw)。
我想将文件写入文件系统。
这是参数哈希:
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 中使用 ruby 1.9.3,但这些命令应该是相同的......
所以我现在很难过。