1***@qq.com
1***@qq.com
  • 发布:2022-12-29 14:31
  • 更新:2024-04-11 18:10
  • 阅读:1074

【报Bug】plus.io.FileReader()中读取文件,使用了blob.slice分割,readAsText会正常显示分割后的字符,而readAsDataURL还是只会显示未分割的

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: Windows 11 家庭中文版 21H2

HBuilderX类型: 正式

HBuilderX版本号: 3.6.14

手机系统: Android

手机系统版本号: Android 12

手机厂商: 华为

手机机型: 荣耀10,harmonyOS 2.0.0系统,是鸿蒙不是安卓系统,手机OS系统那栏我乱选的安卓12

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

源码源文件已附带,按照源码进行即可

预期结果:

readAsDataURL也能够正常读取按照blob.slice(start,end)方法分割的文件

实际结果:

未实现,目前readAsDataURL是读取的未分割的源文件

bug描述:

我在本地/static/目录下放置一个.bin文件,并且使用file.slice(start,end)按照字节分割出来,
使用readAsText读取是正常的分割后的字符内容(图一)
而使用了readAsDataURL读取分割的文件时,展示的还是源文件未分割的内容(图二)
请问此问题是不是uniapp框架内的bug

另外附上源代码和源文件方便复现场景

      plus.io.resolveLocalFileSystemURL(  
        "/static/OCE_HMET_1.2.1_CODE.bin",  
        function (entry) {  
          //读取文件  
          entry.file(function (file) {  
            var reader = new plus.io.FileReader();  
            var newBlob = file.slice(1,1025);  
            console.log("newBlob", newBlob);  
            // reader.readAsDataURL(newBlob); // 以URL格式读取文件  
            reader.readAsText(newBlob, "utf-8"); // 以字符串格式读取文件  
            reader.onload = function (evt) {  
              console.log("evt", evt, evt.target.result.length);  
            };  
          });  
        }  
      );
2022-12-29 14:31 负责人:DCloud_Android_ST 分享
已邀请:

最佳回复

DCloud

DCloud

HBuilderX 3.7.0.20230118-alpha 已修复。

  • 2***@qq.com

    服了,修复就修复吧。咋地还能乱改东西。readAsDataURL之前读出来的base64没有\r\n的 ,更新到3.7.3....,读出来的就多出了\r\n,研究一天,我说怎么上传文件,一直异常。你个老六....

    2023-02-25 11:01

  • Leaves29

    更新后,原来的上传的文件在服务端怎么转存呢,我试了图片损坏的,求指导。。PHP

    2023-03-01 01:52

  • Leaves29

    回复 2***@qq.com: 异常解决了吗?。。

    2023-03-01 01:52

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

    回复 2***@qq.com: 草,我是遇到一样的问题,现在识别了换行符\r\n,以前没有的,搞得我们APP出bug了

    2023-03-10 11:48

  • h***@foxmail.com

    还有这么搞的,为了显得整齐一点,把数据内容都改了! 人为制造 BUG. 一通修正。。。 晕啊,不带这么玩的吧 ?!

    2023-03-20 22:08

DCloud_Android_ST

DCloud_Android_ST

readAsDataURL 暂时未支持slice 感谢你的反馈

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

    后续将会更新readAsDataURL的支持slice方法吗

    2022-12-29 16:05

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

    另外官方在其他帖子2020年回复的会尽快添加上readAsArrayBuffer方法似乎也还是不能使用啊,这都快2023年了啊

    2022-12-29 16:08

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

    回复 DCloud_Android_ST: 不能因为很少人使用就放弃技术更新了啊,万一碰见像我这种开发硬需求需要使用的,这不是白搭了吗

    2022-12-30 10:29

  • DCloud_Android_ST

    回复 1***@qq.com: 嗯 已安排处理了 急用你可以使用uni原生插件实现相关逻辑

    2022-12-30 10:53

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

    回复 DCloud_Android_ST: 我并未找到相关的uni原生插件,你们有这方面开发的插件吗

    2022-12-30 11:55

3***@qq.com

3***@qq.com

更新之后,readAsDataURL 读取文件报错了,以前是正常的

g***@163.com

g***@163.com

您好,请教一下,我的需求是:读取bin文件内容后,分包发送给硬件设备;
目前已成功读取bin文件,但是怎么把bin文件内容转换成 比如ArrayBuffer等,反正最终要16进制数据;
谢谢,急

要回复问题请先登录注册