1

アップロードが完了した割合を取得し、進行状況バーの進行状況を更新するにはどうすればよいですか。

アップロードコードを追加しています。非同期タスクで使用しています。

助けてください。ありがとうございました

ileInputStream fileInputStream = new FileInputStream(sourceFile);
                     URL url            =   new URL(upLoadServerUri);
                     conn               =   (HttpURLConnection) url.openConnection(); // Open a HTTP  connection to  the URL
                     conn.setDoInput(true); // Allow Inputs
                     conn.setDoOutput(true); // Allow Outputs
                     conn.setUseCaches(false); // Don't use a Cached Copy
                     conn.setRequestMethod("POST");
                     conn.setRequestProperty("Connection", "Keep-Alive");
                     conn.setRequestProperty("ENCTYPE", "multipart/form-data");
                     conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
                     conn.setRequestProperty("uploaded_file", fileName); 
                     dos        =   new DataOutputStream(conn.getOutputStream());

                     dos.writeBytes(twoHyphens + boundary + lineEnd); 
                     dos.writeBytes("Content-Disposition: form-data; name=\"uploaded_file\";filename=\""+ fileName + "\"" + lineEnd);
                     dos.writeBytes(lineEnd);
                      Log.i("buffer", "jgf"+fileInputStream.read());


                     bytesAvailable = fileInputStream.available(); // create a buffer of  maximum size
                     bufferSize     = Math.min(bytesAvailable, maxBufferSize);
                     buffer         = new byte[bufferSize];

                     // read file and write it into form...
                     bytesRead      = fileInputStream.read(buffer, 0, bufferSize);  

                     while (bytesRead > 0) 
                     {
                       dos.write(buffer, 0, bufferSize);
                       bytesAvailable =     fileInputStream.available();
                       bufferSize     =     Math.min(bytesAvailable, maxBufferSize);
                       bytesRead      =     fileInputStream.read(buffer, 0, bufferSize);
}

dos.writeBytes(lineEnd);
                         dos.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

                     // Responses from the server (code and message)
                    serverResponseCode = conn.getResponseCode();
                    String serverResponseMessage    =   conn.getResponseMessage();

                     Log.i("uploadFile", "HTTP Response is : " + serverResponseMessage + ": " + serverResponseCode);

                     if(serverResponseCode == 200){
                         runOnUiThread(new Runnable() {
                              public void run() {

                                  Toast.makeText(getApplicationContext(), "File Upload Complete.", Toast.LENGTH_SHORT).show();                            
                                  dialog.dismiss();

                              }
                          });                
                     }    

                     //close the streams //
                     fileInputStream.close();
                     dos.flush();
                     dos.close();
4

1 に答える 1

0

AsynchTaskとそのを利用する必要がありますpublishProgress()たとえば、このように検索すると、多くの例を見つけることができます。

于 2012-08-14T14:25:20.357 に答える