首页IT科技defiant读音(antd的upload组件的各种上传、下载操作(vue))

defiant读音(antd的upload组件的各种上传、下载操作(vue))

时间2025-07-04 08:53:44分类IT科技浏览4820
导读: 作为前端小白刚刚接触上传、下载文件的操作也让我很头疼,所以利用时间记录一下方便巩固,希望能够帮到大家。...

  作为前端小白刚刚接触上传           、下载文件的操作也让我很头疼           ,所以利用时间记录一下方便巩固                 ,希望能够帮到大家            。

  我将情况分为以下几种:

1.点击按钮上传单个文件

//html <a-upload :action="baseUrl + /api/uploadSingleFile" :headers="headers" :file-list="fileList" @change="handleChange_file"> <a-button> <a-icon type="upload" /> 上传文件 </a-button> </a-upload> //action表示上传的地址      ,baseUrl是我们公司服务器的IP地址      ,加上后面的接口地址就组成了完整的上传地址 //headers表示设置上传的请求头部                 ,因为是后台管理系统所以会在里面存放必要的token //file-list 就是我们上传文件的数组            ,一个文件就是一个数组元素 //@change就是提交文件的回调 //data { baseUrl: baseUrl, headers: { accesstoken: sessionStorage.getItem("accessToken") }, fileList:[], fileList2:[] } //这里除了fileList要需要fileList2的原因是:如果上传按钮下需要展示文件列表就必须是 { url: res, status: "done", name: res, uid: index + 1, } 的对象形式      ,我们用fileList2来存储文件的下载链接也就是fileList中url的res //methods handleChange_file(info) { let fileList = [...info.fileList]; //这一行用来决定上传文件的限制个数                 ,-1就表示1个            ,-2就是2个依次类推... fileList = fileList.slice(-1); //这里判断文件是否上传成功 if (info.file.status === "done") { //判断是否正确链接上传地址 if (info.file.response.code == 0) { let arr = fileList; this.fileList2 = []; //上传成功会把接口返回的下载链接存入fileList2 arr.forEach((item) => { if (item.url) { this.fileList2.push(item.url); } else if (item.response) { this.fileList2.push(item.response.data); } }); this.$message.success(`${info.file.name} 上传成功!`); } //如果是移除文件也会重新填入fileList2 } else if (info.file.status === "removed") { let arr = fileList; this.fileList2 = []; arr.forEach((item) => { if (item.url) { this.fileList2.push(item.url); } else if (item.response) { this.fileList2.push(item.response.data); } }); } this.fileList = [...fileList]; //重点 },

2.点击按钮上传多个文件

上面就说过了,把中的数字换一下就行了                 。

3.上传单个按钮但是不想显示文件列表

antd会像这样上传成功后自动生成列表                 ,但是有时候我们不需要                  ,我们在a-upload下填入

:showUploadList="false"  属性就可以了

4.下载文件(单个)

一般通过动态创建a标签,给url的地址改为文件下载地址就可以了

const a = document.createElement("a"); a.href = record.filePath; document.body.appendChild(a); a.click(); document.body.removeChild(a);

5.下载文件(多个)

一般是通过upload组件把文件列表展示出来           ,这样一点击就可以下载了

clickModel(record) { this.visible = true; this.fileList = []; let arr = record.filePath; arr.forEach((res, index) => { this.fileList.push({ url: res, status: "done", name: res, uid: index + 1, }); }); }, //这里调用的是a-modal的回调让modal悬浮框显示出来同时                  ,在文件列表中放入我们需要的文件     。 //一定要严格按照 url + status + name + uid 的格式            。

  之后遇到新问题我会再次追加      ,欢迎大家讨论                  。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
数字营销网站编辑tk(SEO与SEM:数字营销的双翼,你了解吗?) vue2-elm(【Vue2从入门到精通】Vue监听器watch,计算属性computed,方法methods的区别及使用场景)