z***@qq.com
z***@qq.com
  • 发布:2020-05-04 12:51
  • 更新:2024-05-16 10:33
  • 阅读:34914

uniapp app端如何将图片的base64编码转换成File对象或Blob或文件流

分类:uni-app

目前在app端真机测试下,能够通过chooseImage拿到图片的路径,然后根据这个路径通过plus.io.resolveLocalFileSystemURL拿到图片本地的真实路径,然后将能够读取到图片的内容, plus.io.FileReader只发现能够将图片内容读取成text跟base 64。
需要将图片上传到阿里oss上面。
目前测试调用ali oss的put 传入 arraybuffer
提示必须要BUffer/Blob
测试传入Buffer
提示undefined is not an object (evaluating 'result.headers['x-oss-request-id']',这个觉得可能是ali oss相关的问题,大佬如果知道求帮忙
测试传入Blob
但是无法知道如何转换成Blob ,app端没有Blob对象跟File对象
请问app端怎么讲图片内容转成Blob

2020-05-04 12:51 负责人:无 分享
已邀请:

最佳回复

1***@qq.com

1***@qq.com

关于这个问题,本人看完上述的讨论后,得到了思路并且尝试成功。

现在记录下思路分享给大家

image-tool使用这个插件把,app获取的图片转换成base64

然后再renderjs里面把base64转换成blob再调用阿里云的oss实现前端直传

附件第一张图:转换相册选中的图片为base64
附件第二张图:renderjs接收到的base64字符串转换成blob,再调用阿里云oss上传文件
附件第三张图是上传到oss后的图片
以上就是uniapp 安卓app 前端直传阿里云oss的方案。

  • 3***@qq.com

    大佬,请问下,为什么我这个在真机演示上门函数不生效

    2024-05-13 18:04

  • 1***@qq.com

    回复 3***@qq.com: 只能在H5上面才生效0.0

    2024-09-29 10:37

9***@qq.com

9***@qq.com - html,app,watercolor,wx

假如用户上传图片 然后进行编辑 这块只能用canvase进行图片的裁剪,裁切后的canvas 生成的只能是base64 而后端的接口需要fromdate 数据格式 这个就有问题了 只能是后端改成base64 ,你们知道base64在uniapp转formdate的方法吗

Dream_Function

Dream_Function

大佬问题解决了吗。项目进行到一半了,也碰到这个问题了。

紫川丶

紫川丶

chooseImage后直接uni.uploadFile()就是file

  • 1***@qq.com

    不是啊 是一个_doc开头的路径

    2021-02-08 17:31

  • 5***@qq.com

    uni.uploadFile()虽然可以传上去,但是图片打不开

    2024-10-19 11:56

端木Q

端木Q

图片相对路径转为base64,你是怎么做的啊,可以把代码贴出来吗

  • 猫猫儿

    官方有API

    2020-07-15 18:16

  • 端木Q

    回复 猫猫儿: 只是微信小程序的吧,app端貌似不可以吧

    2020-07-22 14:17

  • 端木Q

    回复 猫猫儿: 可以告诉我具体是哪个api吗

    2020-07-22 14:18

  • 9***@qq.com

    回复 端木Q: 市场剪切插件有很多转base64

    2020-07-29 11:05

  • 端木Q

    回复 端木Q: 已经搞定了

    2020-07-29 16:50

  • 3***@qq.com

    回复 端木Q: 请问一下您是怎么搞定的?

    2020-08-03 14:36

  • 艾斯彼蒂dc

    回复 端木Q: 麻烦问下uniapp中app-plus获取图片的base64是如何做到的?

    2024-10-16 14:08

z***@gmail.com

z***@gmail.com

这个问题到现在还没有解决吗?我的理解是UniApp目前在App端不提供将图片转成File/Blob的形式,从而无法使用阿里云的SDK上传图片。貌似现在使用uni.uploadFile是最靠谱的,也就是说SDK用不了咯这个问题到现在还没有解决吗?我的理解是UniApp目前在App端不提供将图片转成File/Blob的形式,从而无法使用阿里云的SDK上传图片。貌似现在使用uni.uploadFile是最靠谱的,也就是说SDK用不了咯

1***@qq.com

1***@qq.com

大佬们解决了吗?

2***@qq.com

2***@qq.com - hahahhahah

image-tool 插件看看

5***@qq.com

5***@qq.com - ht

请问解决了么

  • 猫猫儿

    APP端vue没有File或者Blob对象!需要上传文件直接使用uni.uploadFile()

    如果有需要使用阿里的SDK,可以尝试通过renderjs进行操作

    2020-10-29 17:55

1***@qq.com

1***@qq.com -

请问有人解决了吗???

阿里云服务

阿里云服务 - 服务器 数据库 防火墙 商务合作13486368692

有用阿里云 腾讯云的可以找我返点百分之25 v547877155

8***@qq.com

8***@qq.com

都是怎么解决的?遇到了相同的问题

8***@qq.com

8***@qq.com

视频怎么转blob啊,有人遇到这个问题吗,

  • 8***@qq.com

    也是app端的

    2022-12-22 15:46

  • nnnullll

    回复 8***@qq.com: 您好,这个问题解决了吗,咋写的

    2024-01-18 18:39

  • 1***@qq.com

    回复 nnnullll: 我也有这个问题,请问解决了吗

    2024-10-08 09:34

求知路上

求知路上

mark一下

猫猫儿

猫猫儿 - 猫猫儿

用官方提供的uni.uploadFile()方法

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

    没办法app端使用阿里oss的 SDK直接上传嘛

    2020-05-09 11:50

  • 猫猫儿

    回复 z***@qq.com: 阿里的SDK是基于WEB开发的,不适合uniapp端环境

    2020-05-09 13:10

  • Dream_Function

    回复 猫猫儿: 原生的安卓SDK也不行吗?基于原生的SDK进行二次开发成uni-app的插件进行上传OSS也不行吗?

    2020-05-09 14:20

  • Dream_Function

    现在我也是卡在能转换成base64码。但是,如果是按照我们现在H5的方式,还需要通过canvas进行等比例的压缩。在进行上传。现在app中没有Image对象,我还没测试到file对象或者blob对象。好难受啊。

    2020-05-09 14:39

  • 猫猫儿

    回复 Dream_Function: 这肯定可以啊,但是市场里貌似暂时没有,你要自己开发也可以,但用uni的API一般就够了

    2020-05-09 15:20

  • 猫猫儿

    回复 Dream_Function: uni.chooseImage()也提供了压缩功能,可以直接使用

    2020-05-09 15:20

  • Dream_Function

    回复 猫猫儿: 好吧。谢谢回复

    2020-05-09 15:25

  • 3***@qq.com

    有这个方法么,我怎么没找到啊

    2020-08-03 15:27

  • 3***@qq.com

    回复 Dream_Function: 请问你是怎么转成base64的呢

    2020-08-03 15:31

  • 劣徒123

    回复 z***@qq.com:可以改一下官方的接口上传,我改过

    2022-01-14 11:38

  • 求知路上

    回复 劣徒123: 你好,请问怎么改?

    2024-05-14 19:02

  • 5***@qq.com

    回复 Dream_Function: 我也遇到这个问题,请问最后咋解决的?

    2024-10-20 09:43

要回复问题请先登录注册