发送带边界的表单数据时,文件丢失

时间:2016-07-24 20:20:37

标签: ruby-on-rails

我有一个JS脚本,按照here的说明发送带有FormData的文件。我发送了这个请求:

curl '...' 
  -H 'User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36' 
  -H 'Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryNXAVPG4vPIDQ65Yk' 
  --data-binary $'------WebKitFormBoundaryNXAVPG4vPIDQ65Yk\r\nContent-Disposition: form-data; name="test"\r\n\r\ntest\r\n------WebKitFormBoundaryNXAVPG4vPIDQ65Yk\r\nContent-Disposition: form-data; name="test1"\r\n\r\ntest1\r\n------WebKitFormBoundaryNXAVPG4vPIDQ65Yk\r\nContent-Disposition: form-data; name="test1"; filename="Capture du 2016-07-15 06:56:40.png"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundaryNXAVPG4vPIDQ65Yk\r\nContent-Disposition: form-data; name="file"; filename="Capture du 2016-07-15 06:56:40.png"\r\nContent-Type: image/png\r\n\r\n\r\n------WebKitFormBoundaryNXAVPG4vPIDQ65Yk--\r\n' --compressed

如您所见,它使用WebKitFormBoundary发送数据。在Rails部分,我收到:{"test"=>"test", "test1"=>"test1"}。缺少参数file

这是我的JS代码:

formData = new FormData();
formData.append('test', 'test');
formData.append('test1', 'test1');
formData.append('file', $('.file-ci')[0].files[0]);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://test.oxygene.siliga.fr/api/annexes', true)
xhr.send(formData);

我想在请求中发送文件。

我该怎么办?

0 个答案:

没有答案