当前位置: 首页 > news >正文

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麻烦。

http://www.cnnetsun.cn/news/189072.html

相关文章:

  • OpenCore Legacy Patcher终极指南:轻松让老旧Mac运行最新系统
  • Windows AirPods电量管理终极方案:告别盲猜,精准掌控每一格电
  • DeTikZify:3分钟让手绘草图变身高品质LaTeX图表
  • WorkshopDL终极指南:3步轻松获取1000+款游戏模组
  • Python金融数据利器:mootdx通达信数据读取完整指南
  • 如何快速获取中国行政区划数据:从新手到专家的完整指南
  • 鸣潮自动化神器:3分钟教会你解放双手的智能游戏助手
  • RMT驱动在ESP-IDF中的高级应用技巧
  • 胎牛血清常见问题解答
  • WorkshopDL:解锁Steam创意工坊的跨平台下载神器
  • 【毕业设计】基于springboot的老人健康信息管理系统的设计与实现老人信息、护理服务、健康监测、员工管理、家属沟通(源码+文档+远程调试,全bao定制等)
  • 【课程设计/毕业设计】基于springboot的老人健康信息管理系统的设计与实现用户数据、健康内容、交互记录【附源码、数据库、万字文档】
  • Thorium浏览器:极致性能与隐私保护的终极选择
  • HashCalculator终极指南:3分钟掌握文件指纹批量管理技巧
  • WorkshopDL完全指南:轻松下载Steam创意工坊模组
  • 信号回流路径设计原理:快速理解PCB布局
  • VRM模型转换实践指南:从基础构建到高级动画制作
  • 3步搞定MusicBee歌词插件:网易云音乐歌词同步终极指南
  • 手机号转QQ号终极指南:3步完成免费快速查询
  • 星图云开发者平台功能详解 | 业务逻辑编辑器:一拖一连,5分钟搞定复杂开发
  • Android存储限制突破指南:NoStorageRestrict模块深度解析
  • Thorium浏览器:重新定义Chromium性能边界的终极解决方案
  • 绝区零智能助手:全自动任务执行解决方案
  • 终极指南:如何在Android 11+系统中优化存储访问体验?
  • 3步搞定MusicBee网易云歌词插件:让音乐播放更完美
  • HashCalculator终极指南:3步掌握文件哈希值批量计算与校验
  • Minecraft终极光影指南:简单几步让方块世界焕然一新
  • 单机游戏分屏革命:Nucleus Co-Op让一台电脑变多人游戏厅
  • 自动驾驶硬件方案成本控制:从零开始的智能驾驶构建指南
  • 重返未来:1999终极自动化助手:彻底告别重复操作的游戏神器