天津网站设计公司,长沙企业100强名单,wordpress json接口,自建站跨境电商一些场景#xff0c;比如canvas获取的图片#xff0c;或者微信开发sdk返回的图片格式是data:img格式的#xff0c;我们需要上传到服务器上#xff0c;那就需要进行转化。 1、将dataURL转成Blob
// base64 转 blob
dataURItoBlob(dataURI) {// convert base64/URLEncoded …一些场景比如canvas获取的图片或者微信开发sdk返回的图片格式是data:img格式的我们需要上传到服务器上那就需要进行转化。 1、将dataURL转成Blob
// base64 转 blob
dataURItoBlob(dataURI) {// convert base64/URLEncoded data component to raw binary data held in a stringlet byteString;if (dataURI.split(,)[0].indexOf(base64) 0) {byteString atob(dataURI.split(,)[1]);} else byteString unescape(dataURI.split(,)[1]);// separate out the mime componentconst mimeString dataURI.split(,)[0].split(:)[1].split(;)[0];// write the bytes of the string to a typed arrayconst ia new Uint8Array(byteString.length);for (let i 0; i byteString.length; i) {ia[i] byteString.charCodeAt(i);}return new Blob([ia], { type: mimeString });
},
2、构建Form上传表单
const blob dataURItoBlob(imgDataUrl);
const formData new FormData();
// formData.append(auth, state.token.auth); 可以选择性的加入一些鉴权
formData.append(file, blob);
3、进行数据上传我这里使用的是axios const params {url: /store/file,payload: formData};const data await this.upload(params);
我已经对axios进行了封装
export const upload (params) {const { url, payload } paramsreturn axios.post(url, payload, {headers: {Content-Type: multipart/form-data}}).then(x x.data)
}