关于el-upload组件的submit方法的一些思考

问题所在:

开发一个关于文件上传的功能,大概流程:选择好文件之后,文件上传界面被隐藏,显示一个表单验证页面,用来告知用户文件中的一些信息,用户点击表单中的按钮之后才会真正向后端发送所上传文件。
这里我选择了el-upload组件去写,按照惯性思维,如果并不是直接上传文件,那就两个步骤:

1.el-upload组件中设置::auto-upload="false"
2.在对应的上传点击事件中:this.$refs.upload.submit();

但是因为需求,我还需要将文件切片之类的操作(后来后端说不用😒),组件直接进行submit不合要求,所以对我来说,el-upload的作用只是收集上传文件。我选择FormData封装请求体,如下:

let formDate = new FormData();
formDate.append("file", this.uploadFile);

this.uploadFile是我从el-upload中获取到的上传文件,之后未对文件进行其他操作,发送请求之后,在Network里面发现请求体file参数对应的值是[object,object]类型,后端也获取不到文件流。打印了一下this.uploadFile,发现里面还封装了一层,于是用this.uploadFile.raw尝试了一下,没想到成功了,请求体file参数对应的值是binary类型,后端也收到了文件。


由此,我就思考了一下,submit方法会对文件做处理,保证请求体里传输的是binary类型的文件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容