自定義的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使用
百倍增長,數據驅動