繁体   English   中英

Rails访问上载的文件并将其保存到PaperClip

[英]Rails Accessing an Uploaded File and Saving it to PaperClip

我在Rails 3上使用以下文件上传器: https//github.com/blueimp/jQuery-File-Upload

客户端的上传工作正常。 我可以在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>>}

我遇到的问题是我无法将上传的文件保存到Paperclip。

我已经说过:

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

并没有工作。 Paperclip插入文件附件名称“RackMultipart20110124-12264-rbtnth-0”

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

只需使用params[:file]来访问该文件。 无需执行params[:file].tempfile.path Paperclip采用完整的File like对象。

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

其次,您无需手动保存附件。 使用回形针后,它将自动保存附件。 为了完成这些工作,您需要确保这些步骤。

  1. 您已将此行添加到模型has_attached_file:avatar中
  2. 您已创建回形针迁移并已运行迁移您可以使用以下命令生成迁移rails g paperclip“模型名称”头像(其中将使用头像处理附件。)
  3. 在您上传文件的视图页面中,使用f.file_field:avatar
  4. 在您的show / index文件中使用image_tag:avatar.url(:small),我假设图像附件并且您已经将样式应用于图像,如小拇指等。

确保上述步骤后,只需运行您的程序即可。

没有看到你的模型代码很难说,但根据我的看法,我会尝试:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM