【问题标题】:Image upload in rails not working在rails中上传图像不起作用
【发布时间】:2013-04-26 09:10:00
【问题描述】:

我需要上传一张图片并将其发送到一个 api,这里不使用数据库。我使用过
这个file upload without activerecord activerecord 但不起作用。
它给出了 orginal_filename 的错误?这就是我使用它时得到的结果

file_param = params[:name]
file_name = file_param.original_filename  
NoMethodError (undefined method `original_filename' for "C:\\fakepath\\logo-big.png":String):

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    使用 gem carrierwave 不是一个好主意。这是一个很棒的tutorial。看看这个。

    更新

    如果你的view 是这样的:<%= file_field_tag 'upload[file]' %>

    将您的控制器代码更改为:

    file_name = params[:upload][:file].original_filename
    

    【讨论】:

    • 是的,但是这个railscasts.com/episodes/253-carrierwave-file-uploads 使用模型,在我的应用程序中,不使用数据库,只需从目录中获取一个文件并通过带有 RestClient::Resource 的 URL 发送到一个 api
    • 我已经更新了答案,请查看。如果不起作用,请提供view 代码。谢谢。
    • 查看代码 :post, :multipart => true do %> "photo_up btn btn-success" %> 控制器代码 file_name = params[:upload][:file].original_filename show_url = "........." resource = RestClient::Resource.new show_url, :user => "admin",:password => "admin" resource.post :file => File.new(file_name, 'rb'),:multipart => true 现在得到PersonalityController#create 中的错误 Errno::ENOENT 没有这样的文件或目录 - images.jpg
    • 好的,你能告诉我你想用这个文件做什么吗?您是否要读取此文件,然后将其写入应用程序目录的文件中?
    • 我尝试了一种方法,当我像这样使用时,我明白了 file_param = params[:upload]
    【解决方案2】:

    我在上传图片时遇到了同样的问题。

    我在后端修改了 c://fackpath/filename.*。

    只需将其添加到您的表单中即可解决问题:

    enctype="multipart/form-data"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-28
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 2020-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多