2012-01-19 7 views
1

私のアップロード方法以下のように:私は、プログレスバーを表示したいこれまでにアップロードされたバイト数を取得する方法は?

private void upload(String Server, String FilePath, String SavePath, String NewName) { 
String end = "\r\n"; 
String twoHyphens = "--"; 
String boundary = "*****"; 
try { 
URL url = new URL(ActionUrl); 
HttpURLConnection con = (HttpURLConnection) url.openConnection(); 
con.setDoInput(true); 
con.setDoOutput(true); 
con.setUseCaches(false); 
con.setRequestMethod("POST"); 
con.setRequestProperty("Connection", "Keep-Alive"); 
con.setRequestProperty("Accept", "text/*"); 
con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary); 
ds = new DataOutputStream(con.getOutputStream()); 
ds.writeBytes(twoHyphens + boundary + end); 
ds.writeBytes("Content-Disposition: form-data;" + "name=\"folder\"" + end + end); 
ds.write(SavePath.getBytes("UTF-8")); 
ds.writeBytes(end); 
ds.writeBytes(twoHyphens + boundary + end); 
ds.writeBytes("Content-Disposition: form-data;" + "name=\"Filedata\"; filename=\""); 
ds.write(NewName.getBytes("UTF-8")); 
ds.writeBytes("\"" + end); 
ds.writeBytes(end); 

FileInputStream fStream = new FileInputStream(uploadFile); 
int bufferSize = 1024; 
byte[] buffer = new byte[bufferSize]; 
int length = -1; 
while((length = fStream.read(buffer)) != -1) { 
ds.write(buffer, 0, length); 
}  
ds.writeBytes(end); 
ds.writeBytes(twoHyphens + boundary + twoHyphens + end); 

fStream.close(); 
ds.flush(); 
InputStream is = con.getInputStream(); 
int ch; 
StringBuffer b = new StringBuffer(); 
while((ch = is.read()) != -1) { 
b.append((char)ch); 
} 
System.out.println("UPLOAD" + "SUCCESS"); 
ds.close(); 
} 
catch(Exception e) { 
e.printStackTrace(); 
} 
} 

。 しかし、これまでにどれくらいのバイトがアップロードされているのかわかりませんでした。 アップロードするバイト数を取得する方法はありますか?

答えて

1

私は Uploading code

-------------アンドロイドであなたの運を試してみて、リンクの下に私をknow.Followせjava.Soでこれを行うにはどのようにそれを知っているし、これはいくつかの理論解説

SecondLink

関連する問題