使用 cloudinary 直接上传 - “没有这样的文件或目录”错误,可能是我的 ruby​​ on rails 代码中的某个错误

Posted

技术标签:

【中文标题】使用 cloudinary 直接上传 - “没有这样的文件或目录”错误,可能是我的 ruby​​ on rails 代码中的某个错误【英文标题】:direct upload with cloudinary - 'No such file or directory' error, probably is a mistake somewhere on my code of ruby on rails 【发布时间】:2012-08-04 05:40:37 【问题描述】:

我正在尝试将表单上上传的图像直接上传到我的云端。

这是它在我的代码上为用户编辑表单:

<%= form_for(@user) do |f| %>

<% if @user.name == nil %>
  <div>  
    <label for="user_username">Username or Email</label>
    <input id="user_username" name="user[username]" size="30" type="text"  />
  </div> 
<% else %>
    <div>
      <%= f.label :username_or_Email %>
      <%= f.text_field :username %> 
    </div>
<% end %> 

    <div>
      <%= f.label :name %>
      <%= f.text_field :name %> 
    </div>

    <div>
      <%= f.label :password %>
      <%= f.password_field :password %>
    </div>

    <div>
      <%= f.label :password_confirmation %>
      <%= f.password_field :password_confirmation %>
    </div>

    <div>
      <%= file_field_tag 'image' %>
    </div>
  <div><%= f.submit "Update", :class => 'btn' %></div>  
<% end %>

我的用户控制器提交到的地方有一行叫做:

Cloudinary::Uploader.upload(params[:image], :public_id => @user.username)

Cloudinary 文档中提供了这一行,我得到的错误是:

没有这样的文件或目录 - 屏幕截图 2012-07-26 at 3.26.05 PM.png

Request

Parameters:

"utf8"=>"✓",
 "_method"=>"put",
 "authenticity_token"=>"ueS/aqqCtsIH7ikVA1pq4LfWn044xltFnPQ6Dc0yQXE=",
 "user"=>"username"=>"asuri@yahoo.com",
 "name"=>"Ankit Suri",
 "password"=>"[FILTERED]",
 "password_confirmation"=>"[FILTERED]",
 "image"=>"Screen Shot 2012-07-26 at 3.26.05 PM.png",
 "commit"=>"Update",
 "id"=>"P9q5l9gmea"

有人能找出错误在哪里吗?

【问题讨论】:

【参考方案1】:

为了在 Rails 表单中上传文件,您需要确保它使用的是Multipart

只需将您的 form_for 呼叫更改如下:

<%= form_for(@user, :html => :multipart => true) do |f| %>

此外,您还应该考虑使用CarrierWave 或Attachinary 来管理图片上传。

【讨论】:

【参考方案2】:

您的 cloudinary.yml 文件呢? 您可以使用此链接下载它:http://cloudinary.com/console/cloudinary.yml 并将其放在您的config/ 目录下

【讨论】:

以上是关于使用 cloudinary 直接上传 - “没有这样的文件或目录”错误,可能是我的 ruby​​ on rails 代码中的某个错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 jQuery 使用 Cloudinary API 直接上传图片

如何使用 Cloudinary jQuery 插件直接从页面上传图片?

Rails Cloudinary 提交后直接上传图片

如何在 Rails 中使用 Cloudinary 将直接上传字段与模型相关联?

在 Android 中直接将捕获的图像上传到 Cloudinary

当我动态设置上传输入的属性“data-form-data”时,Cloudinary 直接浏览器上传失败