一坨菜菜的糯米
一坨菜菜的糯米
  • 发布:2020-08-31 11:44
  • 更新:2020-09-30 09:38
  • 阅读:1777

uni-app h5 不通过chooseImage,怎么直接使用uploadFile来上传图片呢

分类:uni-app

由于需要上传的图片不需要选择图片,所以想绕过chooseImage,然后通过自己生成一个图片blob地址,然后再uploadFile的时候没有文件的后缀名,这里要怎么搞呢

先生成一个blob地址

var self = this  
                var xhr = new XMLHttpRequest();  
                var timestamp = new Date().valueOf();  
                var imgNameArr = this.identifyPictureUrl.split(".");  
                var imgName = imgNameArr[imgNameArr.length - 1];  
                xhr.open("GET", this.identifyPictureUrl);  
                xhr.responseType = "blob"; //二进制文件  
                xhr.onload = function() {  
                    if (this.status === 200) {  
                        var data = xhr.response;  
                        var file = new File([data], timestamp + "." + imgName, {  
                            type: "image/jpeg",  
                        })  
                        var blobUrl = window.URL.createObjectURL(file);  
                        self.handleFaceRecognition(blobUrl);  
                    }  
                };  
                xhr.send();

再使用uploadFile上传

uni.uploadFile({  
                    url: 'https://unidemo.dcloud.net.cn/upload',  
                    filePath: blobUrl,  
                    fileType: 'image',  
                    name: 'file',  
                    success: (res) => {  
                        console.log('uploadImage success, res is:', res)  
                        uni.showToast({  
                            title: '上传成功',  
                            icon: 'success',  
                            duration: 1000  
                        })  
                        // this.imageSrc = imageSrc  
                    },  
                    fail: (err) => {  
                        console.log('uploadImage fail', err);  
                        uni.showModal({  
                            content: err.errMsg,  
                            showCancel: false  
                        });  
                    }  
                });

是哪里有问题嘛 新手刚用,请教一下各位大佬

2020-08-31 11:44 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

使用 file 参数,用 File 对象(或者 Blob 对象),可以设置 name

t***@gmail.com

t***@gmail.com

关键是怎么构造 File 对象。

例如只有一个 tempFilePath,就是一个临时的文件路径。

然后我要如何根据这个路径构造 File 对象

  • DCloud_UNI_GSQ

    仅浏览器环境支持 File 对象,且低版本的浏览器不支持 File 构造函数

    2020-09-30 16:51

该问题目前已经被锁定, 无法添加新回复