0

こんにちは、サーバーにファイルを送信する必要があります。このコードを使用します

public void PostFile() {

        HttpClient httpclient = new DefaultHttpClient();
        httpclient.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
        // httpclient.
        HttpPost httppost = new HttpPost("http://fastcalc.orionsource.ru/test.php");


        File file = cache.getFileFromCache("citys.json");

        FileEntity reqEntity = new FileEntity(file,"text/plain");
        reqEntity.setContentType("text/plain");
        httppost.setEntity(reqEntity);



        System.out.println("executing request " + httppost.getRequestLine());

        HttpResponse response;
        try {
            response = httpclient.execute(httppost);
            HttpEntity resEntity = response.getEntity();

            System.out.println(response.getStatusLine());
            if (resEntity != null) {
                System.out.println(EntityUtils.toString(resEntity));
            }
            if (resEntity != null) {
                resEntity.consumeContent();
            }

        } catch (ClientProtocolException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        httpclient.getConnectionManager().shutdown();
    }

以下のサーバー側のコードで

<?php
print 'Files:';
print_r($_FILES);
print '<br><br>';
print "Response:\n";
print_r($_REQUEST);
print '<br><br>';

?>

Androidでは応答が得られます

05-29 17:26:29.232: I/System.out(26823): executing request POST http://fastcalc.orionsource.ru/test.php HTTP/1.1
05-29 17:26:29.732: I/System.out(26823): HTTP/1.1 200 OK
05-29 17:26:29.732: I/System.out(26823): Files:Array
05-29 17:26:29.732: I/System.out(26823): (
05-29 17:26:29.732: I/System.out(26823): )
05-29 17:26:29.732: I/System.out(26823): <br><br>Response:
05-29 17:26:29.732: I/System.out(26823): Array
05-29 17:26:29.732: I/System.out(26823): (
05-29 17:26:29.732: I/System.out(26823): )
05-29 17:26:29.732: I/System.out(26823): <br><br>

MultipartEntity はどの Android バージョンにも含まれていないため、使用できません。サードパーティのライブラリです。

誰かが FileEntity のみを使用するチュートリアルへのリンクを提供してください。

4

1 に答える 1

0

こんにちは、サーバーに送信する画像ファイルを試してみました。ファイルをbase64文字列に変換してサーバーに送信し、サーバー側からbase64をファイルに変換するという1つのことを行うことができます

参考までに、base64に変換する方法は私の答えです:ImageViewの画像をphpサーバーに送信する方法は?

于 2012-05-29T13:41:31.533 に答える