首页
博客
WEB插件
Ant Design Vue 开发时 upload 自定义手动上传 Axios(ajax)时 new FormData() 出现 [object Object]
原创
前端
2019-12-25 10:56:37
浏览:4410
>在试用Ant Design Vue 开发时会用到内置的upload,但是在用到内置的upload的时候,由于官网的说明文档比较简洁,总是出现这样那样的问题! ### 一、手动上传官方样例: ```
Select File
{{uploading ? 'Uploading' : 'Start Upload' }}
``` >**按照官网给的样例是么有问题的!!!** ### 二、完全控制的上传列表官方样例: ```
Upload
``` > 此样例的的功能是,可以通过change事件控制上传文件的类型、大小、数量等等做限制,**按照这个样例也是没有问题!!!** ### 三、但是,我们把这两个结合就会出现问题了: ##### 1、错误演示代码: ```
Select File
{{uploading ? 'Uploading' : 'Start Upload' }}
``` ##### 2、正确演示代码: ```
Select File
{{uploading ? 'Uploading' : 'Start Upload' }}
``` ##### 3、对比以上两块代码你会发现问题在 handleUpload() 下的这个地方: 官网单独的手动上传样例: ``` fileList.forEach(file => { formData.append('files[]', file); }); ``` 改动后的代码: ``` fileList.forEach(file => { formData.append('files[]', file.orignFileObj); }); ``` > 为什么把`file`改成`file.orignFileObj`呢? ##### 因为:你可以 打印下file 看下内容: 1、没有添加 change 的 handleChange() 时 file 的内容是: ``` file: File(118) { lastModified: 1577163396357, lastModifiedDate:"Tue Dec 24 2019 12:56:36 GMT+0800 (中国标准时间)", name:"xxx.xlsx", size:118, type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", uid:"vc-upload-1577245939870-2", webkitRelativePath:"" } ``` 2、添加了 change 的 handleChange() 时 file 的内容是: ``` file: { lastModified:1577163396357, lastModifiedDate:"Tue Dec 24 2019 12:56:36 GMT+0800 (中国标准时间)", name:"xxx.xlsx", originFileObj:File(118) { lastModified: 1577163396357, lastModifiedDate:"Tue Dec 24 2019 12:56:36 GMT+0800 (中国标准时间)", name:"xxx.xlsx", size:118, type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", uid:"vc-upload-1577245939870-2", webkitRelativePath:"" }, percent:0, size:118, type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", uid:"vc-upload-1577245939870-2" } ``` ##### 所以如果你把两个样例组合还按照原有的不变,传`file`,那他传的就是"object Object",不是文件了,所以改成`file.orignFileObj`就可以了。 ###总结: >由此可以确定:如果自己自定义 `new FormData()` 然后 `ajax`上传文件,传文件的`orignFileObj`
上一篇:
vue-cli3实现分环境打包,给不同的环境配置相对应的打包命令和变量配置
下一篇:
没有了
推荐热文
vue-cli 3.0 安装和创建项目教程
vue-cli3实现分环境打包,给不同的环境配置相对应的打包命令和变量配置
React create-react-app 安装和创建项目教程
Angular CLI 安装和创建项目教程
设置用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm
vue部署到Nginx服务器上
vue-cli3 引入 element-ui 按需加载的配置