自定義的CustomMultiPartEntity 繼承MultipartEntity
package com.example.upload; import java.io.FilterOutputStream; import java.io.IOException; import java.io.OutputStream; import java.nio.charset.Charset; import org.apache.http.entity.mime.HttpMultipartMode; import org.apache.http.entity.mime.MultipartEntity; public class CustomMultiPartEntity extends MultipartEntity { private final ProgressListener listener; public CustomMultiPartEntity(final ProgressListener listener) { super(); this.listener = listener; } public CustomMultiPartEntity(final HttpMultipartMode mode, final ProgressListener listener) { super(mode); this.listener = listener; } public CustomMultiPartEntity(HttpMultipartMode mode, final String boundary, final Charset charset, final ProgressListener listener) { super(mode, boundary, charset); this.listener = listener; } @Override public void writeTo(final OutputStream outstream) throws IOException { super.writeTo(new CountingOutputStream(outstream, this.listener)); } public static interface ProgressListener { void transferred(long num); } public static class CountingOutputStream extends FilterOutputStream { private final ProgressListener listener; private long transferred; public CountingOutputStream(final OutputStream out, final ProgressListener listener) { super(out); this.listener = listener; this.transferred = 0; } public void write(byte[] b, int off, int len) throws IOException { out.write(b, off, len); this.transferred += len; this.listener.transferred(this.transferred); } public void write(int b) throws IOException { out.write(b); this.transferred++; this.listener.transferred(this.transferred); } } }
最後更新:2017-04-03 18:51:47
上一篇:
poj 1192 最優聯通子集 簡單dp
下一篇:
android實現帶進度條的文件上傳
PMP:“拍好馬屁”,改變人生! (1)
Java連接sqlserver2005到主機的TCP/IP連接失敗問題
高效程序員的特征:聰明,懶惰
10月12日雲棲精選夜讀:【直擊2017杭州·雲棲大會】TECH INSIGHT企業遷雲實戰專場
雲棲大會100位頂級大咖演講PPT+視頻全分享!
PostgreSQL 10.0 preview 變化 - 邏輯複製pg_hba.conf變化,不再使用replication條目
我的老板有個帥帥的好朋友,喜歡大閘蟹配冰酒
愛上多線程——重複初始化問題
java.util.concurrent包(7)——Exchanger使用
百倍增長,數據驅動