如何在rails中一键获取多个文件?

How to get multiple files in one key in rails?

我想在RailsAPI.
中一键解析多个文件 这是 rails 控制器代码。

def fun
  render json: params[:file]
end

这是 javascript-jQuery 代码。

var form = new FormData();
form.append("file", fileInput.files[0], "75341083_406717103617108_7315677611286331392_n.jpg");
form.append("file", fileInput.files[0], "75380217_961903127500586_7366878762530504704_n.jpg");

var settings = {
  "url": "http://127.0.0.1:3000",
  "method": "POST",
  "timeout": 0,
  "headers": {
  "Content-Type": "application/x-www-form-urlencoded"
  },
  "processData": false,
  "mimeType": "multipart/form-data",
  "contentType": false,
  "data": form
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

这是回应

{
"tempfile": "#<File:0x00007fe4c4a289f0>",
"original_filename": "75380217_961903127500586_7366878762530504704_n.jpg",
"content_type": "image/jpeg",
"headers": "Content-Disposition: form-data; name=\"file\"; filename=\"75380217_961903127500586_7366878762530504704_n.jpg\"\r\nContent-Type: image/jpeg\r\n"
}

我能做什么?

为参数指定唯一的名称,这样它们就不会在参数散列中相互覆盖:

form.append("file", fileInput.files[0], "75341083_406717103617108_7315677611286331392_n.jpg");
form.append("other_file", fileInput.files[1], "75380217_961903127500586_7366878762530504704_n.jpg");

或者在参数中创建一个数组:

form.append("files[]", fileInput.files[0], "75341083_406717103617108_7315677611286331392_n.jpg");
form.append("files[]", fileInput.files[1], "75380217_961903127500586_7366878762530504704_n.jpg");

或散列:

form.append("files[first]", fileInput.files[0], "75341083_406717103617108_7315677611286331392_n.jpg");
form.append("files[second]", fileInput.files[1], "75380217_961903127500586_7366878762530504704_n.jpg");