|
@@ -49,14 +49,7 @@ export function getWxConfig(jsApiList) {
|
|
|
|
|
|
//选择图片,多图上传和单图上传的回调处理不一样
|
|
//选择图片,多图上传和单图上传的回调处理不一样
|
|
export function chooseImage(count) {
|
|
export function chooseImage(count) {
|
|
- const getImgSize = str => {
|
|
|
|
- var strLength = str.length;
|
|
|
|
- var fileLength = parseInt(strLength - (strLength / 8) * 2);
|
|
|
|
- var size = '';
|
|
|
|
- size = (fileLength / 1024).toFixed(2);
|
|
|
|
|
|
|
|
- return parseInt(size);
|
|
|
|
- };
|
|
|
|
var count = count || 1;
|
|
var count = count || 1;
|
|
let promise = new Promise((resolve, reject) => {
|
|
let promise = new Promise((resolve, reject) => {
|
|
wx.chooseImage({
|
|
wx.chooseImage({
|
|
@@ -93,7 +86,7 @@ export function getLocalImgData(localId, fun) {
|
|
}
|
|
}
|
|
|
|
|
|
//上传图片
|
|
//上传图片
|
|
-export function uploadPic(imgBase64) {
|
|
|
|
|
|
+export function uploadPic(imgBase64,compressBl) {
|
|
//1,先将base64转换为blob
|
|
//1,先将base64转换为blob
|
|
function dataURLtoBlob(dataurl){
|
|
function dataURLtoBlob(dataurl){
|
|
var arr = dataurl.split(','),
|
|
var arr = dataurl.split(','),
|
|
@@ -113,32 +106,64 @@ export function uploadPic(imgBase64) {
|
|
return new File([theBlob], fileName, {type: theBlob.type, lastModified: Date.now()});
|
|
return new File([theBlob], fileName, {type: theBlob.type, lastModified: Date.now()});
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
|
|
+ /* 压缩base64图片 */
|
|
|
|
+ function compress(
|
|
|
|
+ base64, // 源图片
|
|
|
|
+ rate, // 缩放比例
|
|
|
|
+ callback, // 回调
|
|
|
|
+ resolve, reject
|
|
|
|
+ ) {
|
|
|
|
+ //处理缩放,转格式
|
|
|
|
+ var _img = new Image();
|
|
|
|
+ _img.src = base64;//这里赋值之后就会触发onload函数
|
|
|
|
+ _img.onload = function () {
|
|
|
|
+ var _canvas = document.createElement('canvas');
|
|
|
|
+ var w = this.width * rate;
|
|
|
|
+ var h = this.height * rate;
|
|
|
|
+ _canvas.setAttribute('width', w);
|
|
|
|
+ _canvas.setAttribute('height', h);
|
|
|
|
+ _canvas.getContext('2d').drawImage(this, 0, 0, w, h);//this就是这个_img,在 这里画出缩小的图
|
|
|
|
+ var base64 = _canvas.toDataURL('image/jpeg');//然后把缩小的图转化为base64了,实现了图片的压缩
|
|
|
|
+ _canvas.toBlob(function (blob) {
|
|
|
|
+
|
|
|
|
+ callback(base64,resolve, reject);
|
|
|
|
+ }, 'image/jpeg');
|
|
|
|
+ };
|
|
|
|
+ }
|
|
|
|
+ function thiscallback(imgBase64,resolve, reject){
|
|
|
|
+ console.log(imgBase64.length)
|
|
|
|
+
|
|
|
|
+ var formData = new FormData();
|
|
|
|
+ formData.append('photoName', '1.jpg');
|
|
|
|
+ //formData.append('photoBase64Data', imgBase64);
|
|
|
|
+ var blob= dataURLtoBlob(imgBase64)
|
|
|
|
+ var file= blobToFile(blob,'1.jpg')
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ formData.append('photoFile', file);
|
|
|
|
+
|
|
|
|
+ API_Common.upload(formData).then(response => {
|
|
|
|
+ resolve(response);
|
|
|
|
+ }).catch(error => {
|
|
|
|
+ mui.toast(error);
|
|
|
|
+ reject(error);
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+
|
|
let promise = new Promise((resolve, reject) => {
|
|
let promise = new Promise((resolve, reject) => {
|
|
- var formData = new FormData();
|
|
|
|
- formData.append('photoName', '1.jpg');
|
|
|
|
- //formData.append('photoBase64Data', imgBase64);
|
|
|
|
- var blob= dataURLtoBlob(imgBase64)
|
|
|
|
- var file= blobToFile(blob,'1.jpg')
|
|
|
|
- formData.append('photoFile', file);
|
|
|
|
|
|
+ console.log(imgBase64.length)
|
|
|
|
|
|
- console.log(file);
|
|
|
|
- // console.log(res)
|
|
|
|
- // var k=getImgSize(res.localData)
|
|
|
|
- // console.log("图片大小"+(k/2000))
|
|
|
|
- if(file.size/1024<5000){
|
|
|
|
-
|
|
|
|
- }else{
|
|
|
|
- var k=parseInt(file.size/1024)
|
|
|
|
- reject("图片大小限制5M,当前图片大小为"+(k/1000)+"M,建议裁剪或拍照防止照片失真");
|
|
|
|
- }
|
|
|
|
|
|
+ if(compressBl){
|
|
|
|
+ compress(imgBase64,0.6,thiscallback,resolve, reject)
|
|
|
|
+
|
|
|
|
+ }else{
|
|
|
|
+ thiscallback(imgBase64,resolve, reject)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
- API_Common.upload(formData).then(response => {
|
|
|
|
- resolve(response);
|
|
|
|
- }).catch(error => {
|
|
|
|
- mui.toast(error);
|
|
|
|
- reject(error);
|
|
|
|
- })
|
|
|
|
});
|
|
});
|
|
return promise;
|
|
return promise;
|
|
}
|
|
}
|