Rails的访问上传的文件并将其保存

问题描述:

我使用下面的文件上传和Rails 3到回形针:https://github.com/blueimp/jQuery-File-UploadRails的访问上传的文件并将其保存

在客户端的上传工作正常。我可以看到在Rails日志文件被贴内容时,我上传文件:

Started POST "/attachments/upload" for 127.0.0.1 at Mon Jan 24 14:15:25 -0800 2011 
    Processing by AttachmentsController#upload as */* 
    Parameters: {"_http_accept"=>"application/javascript", "authenticity_token"=>"F1h9pvCZL9HUgTjwCIAMc%252BW1cYwx7eBOPwThHfbS5ZU%253D", "file"=>#<ActionDispatch::Http::UploadedFile:0x1076a6d48 @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"file\"; filename=\"joecocker.jpg\"\r\nContent-Type: image/jpeg\r\n", @original_filename="joecocker.jpg", @tempfile=#<File:/var/folders/lF/lF0Ne5vGFj44kV54W3zBdU+++TI/-Tmp-/RackMultipart20110124-12264-rbtnth-0>>} 

我遇到的问题是我无法保存上传的文件到回形针。

我已经里德:

@attachment = Attachment.create(:attachment => File.open(params[:file].tempfile.path)) 
@attachment = Attachment.create(:attachment => params[:file].tempfile.path) 

而且,无论是工作。回形针插入文件附件名称“RackMultipart20110124-12264-rbtnth-0”

有关如何将文件保存到回形针的任何想法/建议?谢谢

只需使用params[:file]来访问文件。无需做params[:file].tempfile.path。回形针需要一个完整的File类似的对象。

这很难,没有看到你的模型代码,只是说根据我所看到的我会尝试:

@attachment = Attachment.create(params[:file]) 

它可能是你有权限问题的情况下。回形针默认创建一个名称系统在公共文件夹中的文件夹,并保存所有附件。检查您的项目目录的权限。出于测试目的将其设置为777

其次,您不需要手动保存附件。一旦你使用回形针它会自动保存附件。为了让事情继续下去,你需要确保这些步骤。

  1. 您已经加入此行到模型中,has_attached_file:头像
  2. 您已经创建回形针迁移,并已运行迁移 可以生成用下面的命令轨道摹回形针“型号名称”阿凡达迁移(凡头像将被用来处理附件)
  3. 在视图页面,您要上传的文件,使用只需要使用 f.file_field:头像
  4. 在你的节目/索引文件使用IMAGE_TAG:avatar.url(:小),我假设图像附件,你已经应用风格的图像像小拇指等

确保上述步骤后,只要运行你的程序,它将工作。