1

POST リクエストでファイルを送信する際に問題が発生しました。fileName に角かっこがある場合、サーバーはファイルをまったく受信しません。それ以外の場合、サーバーは挿入した名前のファイルを受信します。

私はすでに使用しようとしました
- volley library
- appach httpmime different versions
- Android Asynchronous Http Client
と同じ結果が得られます。

これが私が使用するコードです

       String fileName = "link[image]";//name of the parameter         
       HttpContext localContext = new BasicHttpContext();
       MultipartEntityBuilder builder = MultipartEntityBuilder.create();
       builder.setLaxMode();
       builder.setCharset(Charset.forName("UTF-8"));
       builder.addBinaryBody(fileName, image, ContentType.APPLICATION_OCTET_STREAM, image.getName());//image - it's a File
       HttpClient client = new DefaultHttpClient();
       HttpPost post = new HttpPost(URL);
       HttpEntity entity = builder.build();
       post.setEntity(entity);
       HttpResponse response = client.execute(post, localContext);
       HttpEntity httpEntity = response.getEntity();
       String result = EntityUtils.toString(httpEntity);
4

1 に答える 1

0

この方法を試してください

String fileName = "link[image]";
        HttpContext localContext = new BasicHttpContext();
        MultipartEntity entity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
        entity.addPart("image", new FileBody(new File(fileName)),"image/jpg");
        HttpClient client = new DefaultHttpClient();
        HttpPost post = new HttpPost(URL);
        HttpEntity entity = builder.build();
        post.setEntity(entity);
        HttpResponse response = client.execute(post, localContext);
        HttpEntity httpEntity = response.getEntity();
        String result = EntityUtils.toString(httpEntity);
于 2014-04-17T11:56:11.457 に答える