我一直在跟随这个 FormData教程, 但是我还没有理解 formData对象的工作原理。
我的输入表单
<input type="file" id="file-id" class="w300px rounded4px" name="file" placeholder="PDF file">
<button class="btn-upload-pdf" ng-click="asub.uploadPDF()">Upload</button>
这是上传按钮功能:
this.uploadPDF = () => {
const formData = new FormData();
const fileInput = document.getElementById('file-id');
const file = fileInput.files[0];
formData.append('pdf-file', file);
console.log('formData', formData)
return ApiFactory.insightPDF(formData).then((res) => {
console.log('res', res);
return res;
});
};
当我注销
fileInput
对象.files[0]
时,我可以看到刚刚附加的文件:
似乎这意味着这个对象应该足以发送到POST。 但是这是下一步:formData.append('pdf-file', file);
我在将其发送到我的工厂之前记录了formData,这是结果,我没有看到键“pdf-file”或PDF文件的任何地方,只有一堆方法? 文件被添加到哪里? formData如何包含实际的PDF? 我需要附加formData对象中的某些内容:
发送POST请求的工厂
const insightPDF = (formData) => {
console.log(' formData', formData)
return $http.post('/app/api/insights_pdf', formData).then((res) => {
console.log('PDF uploaded res', res)
return res;
}).catch(apiError);
};