javascript - 文件上传无照片参数问题

标签 javascript jquery ruby-on-rails ruby file

我有一个 Rails 4 应用程序,我在其中使用 jQuery 文件上传向 Carrierwave 发送请求。我的代码如下所示:

<input name='photo[image]' type='file' data-url='photos/create' multiple="true" class='fileupload'/>

和我的jquery:

$('.fileupload').fileupload({
    dataType: 'json',
    done: function (e, data) {
      $.each(data.result.files, function (index, file) {
        alert(file.name);
      });
    }
});

以及我在照片 Controller 中的创建操作:

def create
@photo = Photo.new(photo_params)

respond_to do |format|
  if @photo.save
    format.json { render json: @photo }
  else
    format.json { render json: @photo.errors, status: :unprocessable_entity }
  end
end
end

private
   def photo_params
     params.require(:photo).permit!
   end

和我的照片模型:

class Photo < ActiveRecord::Base
  mount_uploader :image, ImageUploader
end

当我创建照片时,Carrierwave 正确创建图像(在 public/uploads 目录中),但由于某种原因我的 jQuery 出现错误:

Uncaught TypeError: Cannot read property 'length' of undefined

不知道是什么原因造成的?

最佳答案

我应该将此作为评论留下,但我没有足够的声誉,所以我很抱歉。

我认为你只需要使用 data.files 而不是 data.result.files

像这样

$('.fileupload').fileupload({
    dataType: 'json',
    done: function (e, data) {
      $.each(data.files, function (index, file) {
        alert(file.name);
      });
    }
});

关于javascript - 文件上传无照片参数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24392209/

相关文章:

javascript - 如何创建具有可变值的cookie

jquery - 我只需要使用选择器获取标签外部的值

javascript - 如何在 SVG 中包含 Bootstrap Glyphicon

ruby-on-rails - 删除 rails 应用程序中 instagram 授权页面的 cookie

mysql - Rails 中的简单报告 -- from_date 到 to_date

javascript - 不能从函数访问 opencv.js 属性和方法

javascript - 访问已创建的 Chart.js 图表

javascript - Heroku 路由错误 rails css/javascript 未加载

javascript - 用 Javascript 中的 anchor 替换纯文本中的电话号码

javascript - 什么时候应该使用 Javascript 条件运算符?