0

ユーザーが HttpPost メソッドを使用して画像をアップロードできるようにするアプリに取り組んでいます。私は MultipartEntity を使用しているため、ライブラリ apache-mime4j-0.6.1.jar、httpclient-4.3.1.jar、httpcore-4.3.1.jar、および httpmime-4.2.1.jar をアプリに追加しました。私のアップロードコードは以下のようなものです:

public String uploadFile() throws Exception
{
    String result = "";
    try 
    {

            HttpResponse response = null;
            HttpClient httpClient = new DefaultHttpClient();
            HttpPost request = new HttpPost(_url);

            request.setHeader("Accept", "application/json");

            File file=new File(filePath);
            String fileName=file.getName();


            MultipartEntity imageEntity=new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE,null,Charset.forName("UTF-8"));
            imageEntity.addPart("imageName", new StringBody(fileName));
            imageEntity.addPart("image", new FileBody(file, "application/octet-stream"));
            request.setEntity(imageEntity);


            response = httpClient.execute(request);

            InputStream dataStream = response.getEntity().getContent();
            BufferedReader dataReader = new BufferedReader(new InputStreamReader(dataStream));
            String line = "";
            while ((line = dataReader.readLine()) != null) 
                result+=line;

    } 

    catch (Exception e) 
    {

    }

    return result;
}

サーバーから応答を受け取りますが、Web サービス コードで Request.Files にファイルがありません。行を変更すると:

MultipartEntity imageEntity=new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE,null,Charset.forName("UTF-8"));

MultipartEntity imageEntity=new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

アプリは長時間 (約 3 ~ 4 分) 処理中であり、エラーがスローされます。これは、画像を追加すると発生します。FileBody を使用せずに StringBody のみを送信すると、サーバーから応答が返され、Web サービス コードの Request.Files がファイル カウントを正しく返します。この問題を修正して画像を正しくアップロードするにはどうすればよいですか? なにか提案を?

4

0 に答える 0