摘要:一些场景,比如获取的图片,或者微信开发返回的图片格式是格式的,我们需要上传到服务器上,那就需要进行转化。将转成转构建上传表单可以选择性的加入一些鉴权进行数据上传,我这里使用的是我已经对进行了封装
一些场景,比如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...
阅读 1740·2021-10-11 10:58
阅读 1698·2021-09-04 16:41
阅读 978·2019-08-30 15:55
阅读 981·2019-08-29 18:46
阅读 3346·2019-08-29 14:05
阅读 3779·2019-08-26 14:00
阅读 2644·2019-08-26 13:53
阅读 3587·2019-08-26 13:29