1***@qq.com
1***@qq.com
  • 发布:2019-03-26 15:47
  • 更新:2022-08-31 18:08
  • 阅读:9488

阿里云 oss直传 如何获取文件名或者文件类型

分类:uni-app

图片上传时怎么获取文件名,因为我想上传时获取到图片的扩展名
之后生成随机文件名称上传到oss

formData:{  
    'key': stroeAs, // 文件存储路径  
    'policy': policyBase64,  
    'OSSAccessKeyId': accessid,   
    'success_action_status': '200',  
    //让服务端返回200,不然,默认会返回204  
    'signature': signature,  
},

目前uni.chooseImage(OBJECT),success 返回的参数没有文件类型,或者文件名称,只有blob地址和文件大小
用了一个办法就是使用uni.request 可以从返回的content-type读取到文件类型

uni.chooseImage({  
    count: 9,  
    success: (res) => {  
        uni.request({  
            url: res.tempFilePaths[0],  
            responseType: 'arraybuffer',  
            success(res){  
                console.log(res);  
            }  
         });  
    }  
});

这个办法在h5有效,但打包安卓app端里面uni.request 直接就不提示了,success和fail都不执行。

顺便问下 oss的npm包只能用在 h5平台吗?因为本来是想用oss的npm 模块上传的,还有其他平台要用,就用了自带的上传

2019-03-26 15:47 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者) - nobody

好吧,自问自答。
uni.chooseImage() 方法 success 返回参数 中的 tempFilePaths 平台不同返回地址不一样
在h5端返回blob地址 e.g. blob:http://127.0.0.1:8080/9fb99ee3-b533-47a0-9917-04804731fb58
在app端(目前测试android,ios没测试)返回文件存储地址 e.g. file:///storage/emulated/0/DCIM/image1.jpg
小程序暂未测试

发现app端获取文件名比h5端方便多了

我觉得官方应该补充下文档,将返回的参数在不同平台的差异化说明下

  • 1***@qq.com (作者)

    补充下,微信小程序返回地址 是服务器的临时地址 e.g. http://tmp/wx1679d8dc40692733.o6zAJs4Evck8rMa6KlPZ4dGYI0Ps.t3jkFi3eZEG4475ab2f73a8289586958242bff38a925.jpg

    2019-03-27 19:40

风云杭州

风云杭州

这种方式也支持 上传图片到 华为云obs吗

齐飞

齐飞

阿里云oss直传方式可以通过配置阿里云回调获取文件名和文件类型
阿里云oss直传

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