1

マルチパートを使用して画像をアップロードする必要があるプロジェクトに取り組んでいます。これが私のコードです:

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)で、ユーザーにアップロードのプロセスを知らせます(パーセント)。どうやってやるの?ご清聴ありがとうございました!

4

1 に答える 1

0

私の場合、KB 単位のファイル サイズを使用し、KB 単位のファイル サイズでプログレスバーの制限を設定しました。そして、私が使用したプログレスバーを更新するために:

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);
} 
于 2013-07-16T03:01:22.863 に答える