Rico大叔
Rico大叔
  • 发布:2020-09-05 23:41
  • 更新:2020-09-27 11:55
  • 阅读:1249

【报Bug】plus.io 里面的 file.slice() 这个方法无效

分类:HTML5+

产品分类: HTML5+

HBuilderX版本号: 2.8.8

手机系统: Android

手机系统版本号: Android 10

手机厂商: 华为

手机机型: 逍遥模拟器

打包方式: 云端

操作步骤:

你就直接试试这个方法就行了

预期结果:

应该会断点读文件的

实际结果:

读取的还是整个文件

bug描述:

file.slice() 这个方法 无作用 读取的还是整个文件的内容 大文件 直接读取会卡死 所以想到断点读取 但是这个没作用

2020-09-05 23:41 负责人:DCloud_Android_ST 分享
已邀请:
DCloud_Android_ST

DCloud_Android_ST

targetSdkVersion设置的多少

1***@qq.com

1***@qq.com

啥时候修复啊,我的也出现了。。

1***@qq.com

1***@qq.com

let file_name = '_doc/uniapp_save/1599459724141.txt';

                // let FileSystemManager = uni.getFileSystemManager();  
                // console.log(FileSystemManager);  
                // FileSystemManager.getFileInfo(file_name,res=>{  
                //      console.log(res)  
                // })  
                plus.io.resolveLocalFileSystemURL( file_name, function( entry ) {  
                        console.log(entry);  
                        // 可通过entry对象操作test.html文件   
                        entry.file( function(file){  
                            console.log(file);  
                            var fileReader = new plus.io.FileReader();  
                            console.log("getFile:" + JSON.stringify(file));  

                            // file.slice( start, end );  
                            var sclice = file.slice(0,10)  
                            fileReader.onloadstart = function(evt){  
                                console.log(evt);  
                            }  
                            fileReader.onprogress = function(evt) {    
                                                            console.log(evt);    
                            }  
                            fileReader.onloadend = function(evt) {  
                                 console.log(evt);  
                                // console.log("evt.target" + evt.target);  
                                // console.log(evt.target.result);  
                            }  
                            fileReader.readAsText(sclice, 'utf-8');  
                            console.log(file.size + '--' + file.name);  
                        } );  
                }, function ( e ) {  
                        console.log( "Resolve file URL failed: " + e.message );  
                });  

onprogress 和 sclice 都无效

  • DCloud_Android_ST

    sclice问题已经记录 具体修复请留意HX更新版本信息。onprogress暂时不支持。

    2020-09-07 15:15

brush

brush

我的也出现了,而且好像切片完是File对象,而不是谷歌等浏览器的file.slice切完之后那种blob对象

DCloud_App_Array

DCloud_App_Array

HBuilderX2.9.0+版本已修复此问题,目前已发布alpha版本,请使用最新alpha版本。

  • l***@163.com

    HBuilderX2.92 这个问题还是没有解决

    2020-10-15 11:43

  • l***@163.com

    reader.readAsDataURL 读取slice切的块时。reslut获取的还是全部文件

    2020-10-15 11:45

  • 贾小先生

    var fReader = new plus.io.FileReader()

    fReader.onloadend = function (e) {

    console.log(e.target.result.length);

    };

    plus.io.resolveLocalFileSystemURL(videoUrl, function(entry) {

    entry.file(function(file) {

    let slice = file.slice(0,10)

    fReader.readAsDataURL(slice.fullPath);

    })

    })


    为什么我还是读取了整个文件,而不是从0到10的

    2020-11-04 21:57

  • 贾小先生

    回复 l***@163.com: 你的解决了吗?我和你一样的问题

    2020-11-04 21:57

  • l***@163.com

    回复 贾小先生: 他修复的好像是转base64那个版本,读文件对象还是有问题

    2020-11-06 21:58

  • DCloud_Android_ST

    回复 l***@163.com: 完整示例提供一下

    2020-11-09 11:32

  • 娇娇_

    回复 DCloud_Android_ST: 请问file.slice这个问题修复了吗

    2021-01-13 17:39

  • 娇娇_

    回复 贾小先生: 解决了吗

    2021-01-13 18:10

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