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标头.这就是让你认为它是非阻塞的.事实并非如此. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |