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

news/2024/10/10 18:10:11

   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);
});
};



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/69886.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

记一次k8s挂载configmap配置文件识别为文件夹的错误

错误表现 挂载.env为配置文件时被识别成一个文件夹而不是一个文件错误原因 创建configmap的时候原始文件使用的是env解决方式 创建configmap的时候需要使用的文件需要修改文件名为挂载的文件名一致 例如本次挂载的文件名是.env则需要在创建configmap的时候原始文件名修改为.evn…

开源项目更新|WPF/Uno Platform/WinUI 3三个版本的《英雄联盟客户端》

为了统一WPF/WinUI3/Uno仓库的项目架构,我们基于.NET Standard 2.0设计了一个可在所有平台上运行的框架,无需依赖第三方库。这个框架直接实现了项目分散化、模块化、视图注入、依赖注入、单例模式和MVVM等基于XAML的项目架构所需功能。采用这种方法,我们可以在不同版本(如WPF、…

简明线性回归算法中的最小二乘法

我们来通过一个具体的例子说明线性回归算法中最小二乘法如何确定模型参数。 示例:房价预测 假设我们想用房子的面积(平方英尺)来预测房价(美元)。我们有以下数据集:面积(平方英尺)房价(美元)800 150,0001000 200,0001200 210,0001500 280,0001. 建立模型 我们假设房价…

web端ant-design-vue Modal.info组件自定义icon和title使用小节

web端ant-design-vue Modal.info组件自定义icon和title整理小节,最近在项目中用到了自定义icon和title的功能,经过测试发现,如果自定义icon title会自动换行,尝试直接修改样式和穿透方式都没有效果,最后采取了一个巧妙的方式,将icon和title放在一个自定义组件内,完美解决…

Ewald求和在分子静电势能计算中的应用

本文介绍了Ewald求和计算方法在周期性边界条件下计算静电势能的方法。周期性的静电势函数并不是一个空间收敛的函数,通过Ewald求和可以将静电势切分为短程相互作用和长程相互作用,两项分别在实空间和倒易空间(或称傅里叶空间、k空间等)收敛。然后就可以进一步进行截断,用更…

vue3中使用markdown并且显示公式

vue3中使用markdown并且显示公式 最终效果如图 下面是代码 1.先安装依赖包npm install markdown-it mathjax2.src下面创建文件utils/mathjax.js,文件内容如下window.MathJax = {tex: {inlineMath: [["$", "$"],["\\(", "\\)"],[&q…

解决使用Navicat连接数据库时,打开数据库表很慢的问题

今天使用Navicat连接数据库时,发现不管表中数据多少,打开数据库表非常慢。 解决方法: Navicat - 右键编辑数据库连接 - 高级 - 勾选保持连接间隔 - 输入框设置为20 - 点击确定! 参考文章:https://51.ruyo.net/14030.html

2024.9.28 模拟赛 CSP6

模拟赛 单 \(log\) 双 \(log\) 不如三 \(log\)。 T1 一般图最小匹配 简单 dp,水。\(O(n^2)\) 其实也是可反悔贪心的板子,可以 \(O(n\log(n))\) 做。 考虑排序后求差分数组,就变成不能选相邻的。然后就是可反悔贪心板子。 用双向链表(记录前驱后继)维护,然后放进堆里。 板…