【JS】Vue图片上传
使用的vant插件上传图片,回调返回的是base64信息,在此基础上请求接口上传
-
base64转file
-
formData
-
multipart/form-data + post
-
withCredentials 跨域请求设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | function base64ToFile(urlData, fileName) { let arr = urlData.split( ',' ); let mime = arr[0].match(/:(.*?);/)[1]; let bytes = atob(arr[1]); // 解码base64 let n = bytes.length let ia = new Uint8Array(n); while (n--) { ia[n] = bytes.charCodeAt(n); } return new File([ia], fileName, { type: mime }); } // base64转file let filePath = base64ToFile(file.content, '图片名称' ) // formdata提交 let param = new FormData(); param.append( 'file' , filePath); param.append( 'data' , pramas.data); param.append( 'verify' , pramas.verify); // 请求 axios({ filePath: filePath, method: 'post' , url: CONFIG.uploadUrl + 'images/upload' , headers: { 'Content-Type' : 'multipart/form-data' }, responseType: 'json' , withCredentials: true , data: param, }).then ... |
Content-Type四种常见取值
-
application/x-www-form-urlencoded :最常见 POST 提交数据的方式。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。
-
multipart/form-data :另一种非常常见的 POST 数据提交的方式。我们在使用表单上传文件时,必须让 form 的 enctyped 等于这个值。
-
application/json :可以方便的提交复杂的结构化数据,特别适合 RESTful 的接口;也有些服务端语言还没有支持这种方式,例如 php 就无法通过 $POST 对象获得内容。这时候,需要自己动手处理下:在请求头中 Content-Type 为 application/json 时,从 php://input 里获得原始输入流,再 jsondecode 成对象。
得意时做事,失意时读书
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律