首页 > 其他分享 >web端ant-design-vue Upload 手动实现文件上传使用小节

web端ant-design-vue Upload 手动实现文件上传使用小节

时间:2024-10-10 17:59:50浏览次数:1  
标签:web vue 文件 上传 formData 手动 Upload fileList data

   web端ant-design-vue Upload 手动实现文件上传使用小节。最近在项目开发中用到了手动实现文件上传的组件,之前都是自动上传把返回的文件信息保存到服务器。手动上传相对复杂一下,我把遇到的一些问题整理记录一下,有需要的朋友可以避免走弯路!

1、文件上传需要用formdata格式,需要手动配置headers: {    'Content-Type': 'multipart/form-data'},

2、文件上传不需要数据转换

Axios.interceptors.request.use((config) => {
config.transformRequest = (data, headers) => {
// 如果需要上传文件,需要修改接口的headers.type = 'formData'
if (headers['Content-Type'] === 'multipart/form-data') {
return data
}
if (data) {
return stringify(data);
}
};
return config;
});

 3、最重要的是需要用formdata格式上传二进制数据流,而不是对象

<a-upload-dragger ref="uploadDraggedRef"
v-model:fileList="data.fileList" :maxCount="1"
:fileList="data.fileList"
name="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel"
:multiple="false" :beforeUpload="beforeUpload"
@remove="handleRemove"
>
<p class="ant-upload-drag-icon">
<!-- 使用普通的img标签加载本地图片 -->
<img :src=fileImage style="width: 48px;height: 48px;" alt="" />
</p>
<p class="ant-upload-text">选择文件</p>
<p class="ant-upload-hint">
仅支持Excel类型文件
</p>
</a-upload-dragger>

const onSubmit = () => {
fileImportFormRef.value.validateFields().then(async () => {
const formData = new FormData();
formData.append('date', data.date);
formData.append('file', data.fileList[0].originFileObj);
const [err, res] = await to(ImportStudentWorkTime(formData));
if (!err && res.code === '0x000000') {
message.success('导入成功');
//刷新数据列表
emit('refreshData', true)
resetForm();
}else {
message.error(res.msg)
}

}).catch((errorInfo: any) => {
console.log('errorInfo', errorInfo);
});
};



标签:web,vue,文件,上传,formData,手动,Upload,fileList,data
From: https://www.cnblogs.com/bigant9527/p/18456872

相关文章

  • web端ant-design-vue Modal.info组件自定义icon和title使用小节
     web端ant-design-vueModal.info组件自定义icon和title整理小节,最近在项目中用到了自定义icon和title的功能,经过测试发现,如果自定义icontitle会自动换行,尝试直接修改样式和穿透方式都没有效果,最后采取了一个巧妙的方式,将icon和title放在一个自定义组件内,完美解决!代码如下......
  • 微信公众号小说漫画系统 fileupload.php 任意文件上传复现
    0x01漏洞描述:        在微信公众号小说漫画系统的fileupload.php接口中,存在任意文件上传漏洞,该漏洞允许未经身份验证的攻击者上传恶意文件,从而实现代码执行。这种安全隐患使得攻击者能够在服务器上写入后门程序,获取服务器权限,并最终控制整个Web服务器。攻击者可......
  • web端使用高德地图逆地理编码
    1、首先去地理/逆地理编码-基础API文档-开发指南-Web服务API|高德地图API注册一下2、点击产品介绍-------地理/逆地理编码  3、创建应用拿到key 创建web服务、看底下有逆地理编码服务4、上一步就能拿到key了最后一步复制底下代码即可<!DOCTYPEhtml><htmlla......
  • 基于nodejs+vue疫情防控管理系统[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景近年来,全球范围内频繁爆发的疫情给社会带来了前所未有的挑战,特别是在校园这一人员密集且流动性大的环境中,疫情防控工作显得尤为重要。随着信息技术的飞速发......
  • 基于nodejs+vue疫情防控管理系统[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在新冠疫情全球蔓延的背景下,校园作为人员密集、流动性大的特殊场所,疫情防控工作显得尤为重要。随着疫情形势的不断变化,传统的人工管理模式已难以满足高效、......
  • 基于nodejs+vue疫情防控管理系统[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景近年来,全球范围内频繁爆发的疫情给社会生活和经济发展带来了巨大挑战。特别是在校园环境中,人员密集、流动性大,疫情防控难度尤为突出。为了确保师生的健康安......
  • CTF中Web题目的常见题型及解题姿势,零基础入门到精通,收藏这篇就够了
    一、基础知识类题目考察基本的查看网页源代码、HTTP请求、修改页面元素等。这些题很简单,比较难的比赛应该不会单独出,就算有应该也是Web的签到题。实际做题的时候基本都是和其他更复杂的知识结合起来出现。姿势:恶补基础知识就行查看网页源代码按F12就都看到了,flag一般......
  • 基于Node.js+vue高校宿舍分配管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着高校招生规模的不断扩大,学生宿舍的管理变得日益复杂。传统的人工分配和管理方式不仅效率低下,而且容易出错,无法满足现代高校宿舍管理的需求。为了提升宿......
  • 基于Node.js+vue防疫物资管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景近年来,全球范围内疫情的频繁爆发对公共卫生体系构成了严峻挑战。防疫物资作为抗击疫情的重要基础,其高效管理和合理分配直接关系到疫情防控的成效。然而,传统......
  • 基于Node.js+vue高考志愿推荐平台(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着高等教育的普及和高考制度的改革,考生和家长在高考志愿填报时面临着越来越多的选择和挑战。传统的志愿填报方式往往依赖于纸质资料、口头咨询或网络搜索,......