Java 使用multipart上传图像时如何在客户端获取进程
我正在做一个项目,需要上传图像使用多部分。 这是我的密码:Java 使用multipart上传图像时如何在客户端获取进程,java,android,apache,file-upload,Java,Android,Apache,File Upload,我正在做一个项目,需要上传图像使用多部分。 这是我的密码: public void doUploadGIF(File image) { try { long start = System.currentTimeMillis(); HttpPost httppost = new HttpPost( "myurl"); MultipartEntity multipartE
public void doUploadGIF(File image) {
try {
long start = System.currentTimeMillis();
HttpPost httppost = new HttpPost(
"myurl");
MultipartEntity multipartEntity = new MultipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE);
multipartEntity.addPart("gif", new FileBody(image));
httppost.setEntity(multipartEntity);
mHttpClient.execute(httppost, new PhotoUploadResponseHandler());
long end = System.currentTimeMillis();
System.out.println("Time for uploading:"
+ String.valueOf(end - start));
} catch (Exception e) {
Log.e("Upload", "Error while uploading");
}
}
private class PhotoUploadResponseHandler implements ResponseHandler<Object> {
@Override
public Object handleResponse(HttpResponse response)
throws ClientProtocolException, IOException {
HttpEntity r_entity = response.getEntity();
String responseString = EntityUtils.toString(r_entity);
Log.d("UPLOAD", responseString);
return null;
}
}
现在在客户端Android中,我让用户知道上传百分比的过程。
我该怎么做?
谢谢你的关注 在我的例子中,我使用了以KB为单位的文件大小,并以KB为单位设置了progressbar的限制。为了更新我使用的progressbar:
使用Asynctask,在onProgressUpdate中,您可以更新进度条或在上载过程中要更新的任何内容。我知道,但问题是我如何知道文件上载的百分比?我认为这里有点混乱。我的文件长度是2MB。如何知道服务器在特定时间内接收的长度?
int bufferLength = 1024;
File file = new File(ImgURI);
mFileLen = file.length();
int maxBufferSize = 1*1024*1024;
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
for (int i = 0; i < bufferSize; i +=bufferLength) {
progress = i/1024;
progressBar1.setMax(kbfilesize);
publishProgress(progress);
}