【问题标题】:Attachinary : can I keep the original filename?附件:我可以保留原始文件名吗?
【发布时间】:2015-05-27 22:56:05
【问题描述】:

我使用 Attachinray 和 Cloudinary,直接上传。一切都很好,除了当我尝试在我的控制器中保存文件时,我没有原始文件名。

这是我的代码示例:

class User
  has_attachments :pictures
end 

我的表格:

= simple_form_for @user do |f|
  = f.attachinary_file_field :pictures, as: :attachinary
  = f.submit t('.submit')

上传文件后,当我提交表单时,我丢失了原始文件名。这是我从一个文件中得到的:

{"public_id"=>"ryfeummp2ikmzkss4cfy", "version"=>1427873505, "signature"=>"8475fccf9914dd05f6fg622ee39c1cb7ddd25f11", "width"=>78, "height"=>100, "format"=>"png", "resource_type"=>"image", "created_at"=>"2015-03-24T14:48:25Z", "tags"=>["development_env", "attachinary_tmp"], "bytes"=>19882, "type"=>"upload", "etag"=>"1fefdabba402263d18a92238ba4275c9", "url"=>"http://res.cloudinary.com/dd9blzv7x/image/upload/v1427873505/ryfeummp2ikmzkss4cfy.png", "secure_url"=>"https://res.cloudinary.com/dd9blzv7x/image/upload/v1427873505/ryfeummp2ikmzkss4cfy.png"}

有谁知道是否可以跟踪原始文件名?

【问题讨论】:

    标签: ruby-on-rails image-upload cloudinary


    【解决方案1】:

    如果您希望获得原始图像的文件名,您可以在控制器代码中使用类似以下内容:

    params[:user][:pictures].each do |picture| 
      # Do whatever you need with picture.original_filename
    end
    

    如果您需要将它们存储在您的数据库中,您可能需要先permit 它而不是直接访问它们。

    或者,您可以告诉 Cloudinary 将上传图像的文件名设置为原始文件名:

    f.attachinary_file_field :pictures, as: :attachinary, cloudinary: {use_filename: true}
    

    请注意,默认情况下会添加随机字符。了解更多信息: http://support.cloudinary.com/hc/en-us/articles/202520762-How-to-upload-images-while-keeping-their-original-filenames-

    【讨论】:

    • 非常感谢!我试图将 use_filename 作为 attachinary_file_field 参数传递,这显然不起作用。现在一切正常!
    猜你喜欢
    • 2011-03-30
    • 2020-02-16
    • 2020-06-20
    • 2021-07-04
    • 2012-04-12
    • 2014-12-30
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    相关资源
    最近更新 更多