目前公司中有写到导入文件的功能模块, 目前使用的技术栈是react 但是在前家公司使用的请求是用 axios 然后自己封装一个post get请求这种, 本次是直接使用ant-pro的盒子, 所以使用的是dva , 请求方式是通过dispatch来发起的, 那么该怎么发起请求和传递参数
一开始也使用了form表单来提交上传文件 但是碰到各种问题, 比如请求以后会跳转页面 , 使用iframe禁止跳转页面以后 他又不发起请求了 等等一系列问题.
上传功能:
- 点击上传文件
<Upload {...props}>
<Button type="primary">
上传文件
</Button>
</Upload>
-
选择文件
-
选择文件以后 并没有直接上传 , 可以自己手动点击上传按钮再上传
const props = {
onRemove: file => {
this.setState(state => {
const index = state.fileList.indexOf(file);
const newFileList = state.fileList.slice();
newFileList.splice(index, 1);
return {
fileList: newFileList,
};
});
},
beforeUpload: file => {
this.setState(state => ({
fileList: [...state.fileList, file],
}));
return false;
},
fileList,
};
- 点击提交, 提交文件和需要传到 后台的参数
顺便说一句你上传的一定是这样形式的二进制流, 还有你console.log打印importFile一定是个空对象, 别想着打印了, 直接接口传递参数 , 看看 参数格式是不是这种二进制流.
如果显示的是[Object onject]
就取里面的一层
const formData = new FormData();