uni-app(Android 、Ios、微信小程序)上传图片转base64

 1       upload_zheng(type){
 2            uni.chooseImage({ 
 3                     count: 1,
 4                     success: res => {
 5                         console.log(res);
 6                         uni.showLoading({
 7                             title: '上传中,请稍后。。。'
 8                         })
 9                         // this.tempFilePaths = res.tempFilePaths[0];
10                         // #ifdef MP-WEIXIN
11                         wx.getFileSystemManager().readFile({
12                             filePath: res.tempFilePaths[0], //选择图片返回的相对路径
13                             encoding: "base64",//这个是很重要的
14                             success: res => { //成功的回调
15                                 //返回base64格式
16                                 console.log('data:image/png;base64,' + res.data)
17                                 if(type == 1){
18                                     this.form.idFrontImg ='data:image/jpeg;base64,' + res.data; //不加上这串字符,在页面无法显示
19                                 }else{
20                                     this.form.idBackImg ='data:image/jpeg;base64,' + res.data; //不加上这串字符,在页面无法显示
21                                 }
22                                 uni.hideLoading();
23                             }
24                         })
25                         // #endif
26                         // #ifdef APP-PLUS || H5
27                             this.os = plus.os.name;
28                             if(this.os == 'Android'){
29                                 this.urlTobase64(res.tempFilePaths[0], type);
30                             }else{
31                                 plus.io.resolveLocalFileSystemURL(res.tempFilePaths[0], (entry) => { 
32                                     entry.file((file) => { 
33                                         var reader = new plus.io.FileReader();
34                                         reader.readAsDataURL(file);//reader图像预览
35                                         reader.onloadend = (e) => { 
36                                             console.log(e.target.result)//能输出base64即可复制请求了
37                                             if(type == 1){
38                                                 this.form.idFrontImg = e.target.result; //ios用的原生方法,不需要加
39                                             }else{
40                                                 this.form.idBackImg = e.target.result; //ios用的原生方法,不需要加
41                                             }
42                                             uni.hideLoading();
43                                         };
44                                     },
45                                     (e) =>  { 
46                                         console.log('error---', e)
47                                     });
48                                 });
49                             }
50                         // #endif
51                     }, fail(err) {
52                         console.log(err);
53                     }
54                 });
55             },
56             // 转base64码
57             urlTobase64(url, type) {
58                 uni.request({
59                     url: url,
60                     method: 'GET',
61                     responseType: 'arraybuffer',
62                     success: res => {
63                         let base64 = wx.arrayBufferToBase64(res.data); //把arraybuffer转成base64
64                         if(type == 1){
65                             this.form.idFrontImg ='data:image/jpeg;base64,' + base64; //不加上这串字符,在页面无法显示
66                         }else{
67                             this.form.idBackImg ='data:image/jpeg;base64,' + base64; //不加上这串字符,在页面无法显示
68                         }
69                         // base64 = 'data:image/jpeg;base64,' + base64; //不加上这串字符,在页面无法显示
70                         uni.hideLoading();
71                         console.log(base64);
72                     }, fail(err) {
73                         console.log(err);
74                     }
75                 });
76             },

 

posted @ 2022-03-03 15:10  就这样吧丶  阅读(968)  评论(0编辑  收藏  举报