加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何监控文件上传进度?

发布时间:2020-12-15 04:55:00 所属栏目:Java 来源:网络整理
导读:我需要将文件上传到服务器并监视它的进度. 我需要通知每次发送多少字节. 例如,在下载的情况下,我有: HttpURLConnection connection = (HttpURLConnection) m_url.openConnection();connection.connect();InputStream stream = connection.getInputStream();
我需要将文件上传到服务器并监视它的进度.
我需要通知每次发送多少字节.

例如,在下载的情况下,我有:

HttpURLConnection  connection = (HttpURLConnection) m_url.openConnection();
connection.connect();
InputStream stream = connection.getInputStream();
while ((currentBytes  = stream.read(byteBuffer)) > 0) {                    
    totalBytes+=currentBytes;
    //calculate something...
}

现在我需要为上传做同样的事情.但如果使用

OutputStreamWriter stream = new OutputStreamWriter(connection.getOutputStream());
stream.write(str);
stream.flush();

比我无法获得任何进程通知,关于发送了多少字节(它看起来像自动操作).

有什么建议?

谢谢

解决方法

只需设置分块传输模式并监控自己对输出流的写入.

如果不使用分块或固定长度传输模式,则在写入网络之前,所有写入都将写入ByteArrayOutputStream,以便Java可以正确设置Content-Length标头.这就是让你认为它是非阻塞的.事实并非如此.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读