Как получить несколько файлов в одном ключе в рельсах? - PullRequest
0 голосов
/ 05 февраля 2020

Я хочу проанализировать несколько файлов в одном ключе в Rails API.
, и это код контроллера rails.

def fun
  render json: params[:file]
end

, а это javascript - jQuery code.

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"
}

что я могу сделать?

1 Ответ

0 голосов
/ 05 февраля 2020

Дайте параметрам уникальные имена, чтобы они не просто перезаписывали друг друга в параметрах ha sh:

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");

или га sh:

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