摘要:一些场景,比如获取的图片,或者微信开发返回的图片格式是格式的,我们需要上传到服务器上,那就需要进行转化。将转成转构建上传表单可以选择性的加入一些鉴权进行数据上传,我这里使用的是我已经对进行了封装
一些场景,比如canvas获取的图片,或者微信开发sdk返回的图片格式是data:img格式的,我们需要上传到服务器上,那就需要进行转化。
将dataURL转成Blob
// base64 转 blob dataURItoBlob(dataURI) { // convert base64/URLEncoded data component to raw binary data held in a string let byteString; if (dataURI.split(",")[0].indexOf("base64") >= 0) { byteString = atob(dataURI.split(",")[1]); } else byteString = unescape(dataURI.split(",")[1]); // separate out the mime component const mimeString = dataURI .split(",")[0] .split(":")[1] .split(";")[0]; // write the bytes of the string to a typed array const ia = new Uint8Array(byteString.length); for (let i = 0; i < byteString.length; i++) { ia[i] = byteString.charCodeAt(i); } return new Blob([ia], { type: mimeString }); },
构建Form上传表单
const blob = dataURItoBlob(imgDataUrl); const formData = new FormData(); // formData.append("auth", state.token.auth); 可以选择性的加入一些鉴权 formData.append("file", blob);
进行数据上传,我这里使用的是axios
const params = { url: "/store/file", payload: formData }; const data = await this.upload(params);
我已经对axios进行了封装
export const upload = (params) => { const { url, payload } = params return axios.post(url, payload, { headers: { "Content-Type": "multipart/form-data" } }).then(x => x.data) }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/109958.html
摘要:前言最近在为公司的一个比赛制作专题页,碰到一个使用参赛者上传的照片生成专属海报的需求,实现过程中用到了一些以前没用过的,也踩了一些坑,于是将其记录下来。 前言 最近在为公司的一个比赛制作专题页,碰到一个使用参赛者上传的照片生成专属海报的需求,实现过程中用到了一些以前没用过的 api,也踩了一些坑,于是将其记录下来。 需求描述 用户点击按钮进行照片上传 照片上传完成后,将照片进行裁剪,...
摘要:移动端文档富文本编辑器,支持图文混排引用大标题无序列表,字体颜色加粗斜体。可用于独立项目开发,也可以用于与原生混合开发。,图片文件最大尺寸限制,单位,默认,编辑器左右内边距,默认像素,是否显示底部工具栏图片标签连接添加等图标。 ZxEditor 移动端HTML文档(富文本)编辑器,支持图文混排、引用、大标题、无序列表,字体颜色、加粗、斜体。 可用于独立web项目开发,也可以用于与原生A...
阅读 1365·2021-10-11 10:58
阅读 1452·2021-09-04 16:41
阅读 650·2019-08-30 15:55
阅读 778·2019-08-29 18:46
阅读 3114·2019-08-29 14:05
阅读 3502·2019-08-26 14:00
阅读 2429·2019-08-26 13:53
阅读 3104·2019-08-26 13:29