news 2026/4/17 2:07:42

Avue2图片上传使用object对象模式时,axios的请求模式用post还是get?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Avue2图片上传使用object对象模式时,axios的请求模式用post还是get?

Avue2图片上传使用object对象模式时,axios的请求模式用post还是get?

Upload对象如下:

/** * 上传附件 * @param {*} vueObj * @param {*} row * @returns */exportconstuploadOnlyOption=(vueObj,row)=>{return{tip:true,// border: true, //显示边框labelWidth:120,//操作菜单栏的宽度span:12,submitBtn:false,emptyBtn:false,menuBtn:false,detail:false,column:[{row:true,span:24,label:"结账附件",prop:"checkout_attachment",type:"upload",listType:"picture-card",// listType: "text",// dragFile: true, //拖拽上传accept:"image/png, image/jpeg, image/gif, application/pdf,application/x-zip-compressed,.rar,application/x-rar-compressed,application/x-7z-compressed,application/x-bzip,application/x-bzip2",limit:10,fileSize:10000,dataType:"object",span:24,fileText:"选择附件",loadText:"上传附件中...",props:{label:"name",value:"url",},propsHttp:{res:"data",// home: "domain",name:"name",url:"url",},canvasOption:{text:" ",ratio:0.3,},tip:"上传“jpg/png/pdf/压缩包”格式的文件,最多10个,且不超过10M,重新上传时请记住点击提交按钮保存!",action:vueObj.attachUploadUrl,uploadPreview:(file,column,done)=>{letpreviewType=["jpg","jpeg","gif","bmp","png"];letsuffix=file.url.substring(file.url.lastIndexOf(".")+1);if(previewType.includes(suffix.toLowerCase())){done();//默认执行预览}else{vueObj.$confirm("该文件无法预览,可以下载后查看。","提示",{confirmButtonText:"下载",cancelButtonText:"取消",}).then(()=>{vueObj.$downloadFile(file.url,file.name);}).catch(()=>{});}},},],};};

dataType用object对象,支持name,url,label,value等多对象属性上传,方便后端数据存储。

上传操作方法如下:

uploadRecordDetailError(error,column){this.$message.error(error+"!");},uploadRecordDetailExceed(limit,files,fileList,column){if(fileList.length>=limit){this.$message.error(`上传文件数量不能超过${limit}个!`);}},uploadRecordDetailBefore(file,done,loading,column){// console.log(file, column);letsuffix=file.name.substring(file.name.lastIndexOf(".")+1);if(column.accept.indexOf(file.type)>=0||suffix.toLowerCase()=="rar"){done();}else{this.$message.error(`请先上传${column.accept}文件!`);loading();}},uploadRecordDetailAfter(res,done,loading,column,){// console.log(res, this.model);letuploadFile={attachPath:res.url,attachName:res.name,};done();// this.$message.success("上传后的方法");},uploadRecordDetailDelete(file,column){// console.log(file, column);returnnewPromise((resolved,reject)=>{resolved("success");});},//下载附件downAttachFile(file){this.$downloadFile(file.url,file.name);},

提交上传方法:

this.$confirm("是否上传!","提示",{confirmButtonText:'确认',cancelButtonText:'取消',type:'warning'}).then((data)=>{axios.post(this.checkoutUrl,{_csrf,id:this.mainData.id,checkout_attachment:this.mainData.checkout_attachment,},).then((res)=>{if(res.status==200&&res.data.code===0){this.$emit("reload");this.$message({type:"success",message:"上传成功!",});this.close();}else{this.$message({type:"error",message:"执行操作出错!",});}});}).catch(()=>{});

请注意,上述代码使用到的是axios.post,这样checkout_attachment以表单对象数据提交给后端,方面后续数据的存储使用。

不推荐的方式

使用axios.get方式的不便之处,当上传多个文件时,get方法会将checkout_attachment以string数组(array)方式上传,后端接收后需要额外转码才能存储在结构数据中,相比使用post麻烦。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:13:18

Revelation光影包:重塑Minecraft视觉体验的终极选择

厌倦了传统Minecraft的单调画面?Revelation光影包将彻底改变你的游戏认知,带来前所未有的视觉冲击。这款基于物理渲染的高性能光影包,专为追求极致画质的玩家量身打造。 【免费下载链接】Revelation A realistic shaderpack for Minecraft: J…

作者头像 李华
网站建设 2026/4/16 14:01:29

DeepSeek对Oracle 数据库新特性 SQL 宏的总结

原文地址 这篇文章《SQL Macros - Creating parameterised views》是一篇关于 Oracle 数据库新特性 SQL 宏 的教程,旨在指导如何使用 SQL 宏来创建参数化视图。 以下是文章的核心内容总结: 1. 什么是 SQL 宏? SQL 宏是一种在 SQL 语句内部…

作者头像 李华
网站建设 2026/4/16 14:29:50

从零实现Arduino串口通信:新手入门实操教程

从一个字符说起:手把手带你打通 Arduino 串口通信的“任督二脉”你有没有过这样的经历?代码烧录成功,板子通电,LED灯也按预期闪烁了。但你想知道某个传感器读数到底是42还是43,或者想确认某段逻辑是否被执行——结果只…

作者头像 李华
网站建设 2026/4/16 18:00:30

终极指南:如何快速计算分子对接盒子参数

终极指南:如何快速计算分子对接盒子参数 【免费下载链接】GetBox-PyMOL-Plugin A PyMOL Plugin for calculating docking box for LeDock, AutoDock and AutoDock Vina. 项目地址: https://gitcode.com/gh_mirrors/ge/GetBox-PyMOL-Plugin 在药物发现和蛋白质…

作者头像 李华
网站建设 2026/4/16 12:34:31

食堂满意度调查表二维码使用指南与满意度提升方法

食堂满意度调查的重要性 在当今竞争激烈的环境中,我们深知了解师生需求的重要性。满意度调查作为一种有效的工具,能够帮助我们收集真实反馈,洞察顾客的偏好与期待。这不仅有助于优化食堂的服务体系,还能提升整体就餐体验&#xff…

作者头像 李华
网站建设 2026/4/16 20:03:58

Obsidian PDF Plus:终极PDF阅读与笔记管理解决方案

Obsidian PDF Plus:终极PDF阅读与笔记管理解决方案 【免费下载链接】obsidian-pdf-plus An Obsidian.md plugin for annotating PDF files with highlights just by linking to text selection. It also adds many quality-of-life improvements to Obsidians built…

作者头像 李华