java - 七牛上传进度
PHPz
PHPz 2017-04-17 17:09:56
0
2
392

用了七牛的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%,单长期下去不是办法,求各位大神指导!

PHPz
PHPz

学习是最好的投资!

모든 응답(2)
巴扎黑

current/maxLen을 사용하는 이유는 무엇인가요?
current/total을 사용하지 않는 이유
아직 이해가 안 되시나요?

迷茫

Qiniu의 구현 원리를 이해하지 못하면 해결책이 없습니다. Qiniu에게 권장되는 접근 방식이 무엇인지 물어보세요

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿