我的后端已被修改,现在需要将字段与文件一起发送。只需上传文件就可以了。
我的前端在此angularjs库之前一直在使用
https://github.com/nervgh/angular-file-upload/wiki/Module-API
我做了一些研究,据我了解,您应该以这种方式或多或少地启动图书馆本身:
var uploader = new FileUploader({
url: 'mybackend',
headers: { 'Content-Type': undefined }
});
然后添加字段,您应该使用“ formdata”。 所以我尝试这样做:
uploader.onBeforeUploadItem = function (item) {
item.formData['documentType'] = 'mydoctype';
};
但是,在服务器端,我看到该字段已作为标头字段发送。不作为身体领域。 鉴于后端是如何编码的(并且已经可以进行自动测试),我真的需要模仿自动测试,在这种情况下,使前端库通过发送正文字段和文件本身来调用后端。
我找不到与此有关的任何文档。任何帮助都会得到真正的帮助。
****编辑*****
测试正在使用名为supertest的npm库。 该请求看起来像这样:
const request = supertest('mybackend')
.post(`/myendpoint`)
.field('documentType', "mytype")
.attach('file', fileBuffer, {filename: 'testfile1.pdf', contentType: 'application/pdf'})
.expect('Content-Type', /json/)
.end(handleResponse({}, done));
如您所见,文件附加在POST调用中。您还添加了一个字段(POST参数)的位置。 如果这还不够的话,我可以尝试在上面的超级测试调用中找出发送给服务器的完整请求。