七牛上传进度

用了七牛的SDK实现文件上传,上传无误。

在上传的过程中,有个回调函数onProcess(long current, long total),其中的current是当前传输文件的已传大小,total是文件的总大小。


executor = IO.putFile(context, auth, key, Uri.parse(path), extra, new CallBack() {


    @Override

    public void onProcess(long current, long total) {

        //可取得上传进度

        float num = (float) current / (float) maxLen;

        int proValue = (int) (num * 100);

        if (proValue > 99) {

            proValue = 99;

        }

    }


    @Override

    public void onSuccess(UploadCallRet ret) {

        //上传成功回调

    }


    @Override

    public void onFailure(CallRet ret) {

        //上传失败回调

    }

});


问题,我手动取得的文件大小:

long size = file.length();

这个size值小余上面onProcess方法中的total值。


之前联系过七牛的技术支持,给我的回复是total不单单是文件的大小,还有其他一些参数的值累加了,但具体加了哪些,一直没和我说。我现在上传多个文件的时候,size得到的是所有文件的总大小,为了防止出现进度>100%的情况,目前只能手动控制在99%,单长期下去不是办法,求各位大神指导!


呼啦一阵风
浏览 549回答 2
2回答

慕工程0101907

为啥你要用 current / maxLen ?为什么不用 current / total 你还没有理解吧?

慕田峪4524236

不了解七牛的实现原理是没有办法的,你可以问七牛的推荐做法是什么
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java