0

メソッドを使用して、他のいくつかのパラメーター (文字列) と共に複数の画像を PHP サーバーにアップロードしようとしていますPOST。マルチパート方式を使用しています。さまざまなソリューションで規定されている 4 つのライブラリ (apachemime、httpclient、httpmime、httpcore) を追加しましたが、SDK が を認識せずMultipartEntity、エラー「cannot be resolved to a type」が表示されます。も試しましMultipartEntityBuilderたが、それでも同じエラーが表示されます。基本的に、ビットマップ Arraylist をサーバーにアップロードし、進行状況バーを同時に表示したいと考えています。

4

1 に答える 1

1

問題を確認して支援できるように、問題のあるコードを投稿する必要があります。

しかし、少し単純なことを試してみたい場合は、このライブラリ AsyncHttpClient を使用できます: http://loopj.com/android-async-http/

このライブラリを使用すると、次のように複数のファイルを投稿できます。

        private static AsyncHttpClient clientHttp = new AsyncHttpClient();
        ...

        RequestParams params = new RequestParams();
        final String TAG_FILE = "archivo1";
        final String TAG_FILE_1 = "archivo2";
        final String TAG_FILE_2 = "archivo3";
        final String PATH_FILE_1 = ApplicationContext.getInstance().getFilesDir().getPath() + "/" + "file1.jpg";
        final String PATH_FILE_2 = ApplicationContext.getInstance().getFilesDir().getPath() + "/" + "file2.jpg";
        final String PATH_FILE_3 = ApplicationContext.getInstance().getFilesDir().getPath() + "/" + "file3.jpg";

        try {
            params.put(TAG_FILE, PATH_FILE_1);
            params.put(TAG_FILE_1, PATH_FILE_2);
            params.put(TAG_FILE_2, PATH_FILE_3);
            params.put(TAG_PARAM, "SOME TEXT");
        }
        catch(FileNotFoundException e) {
            //Manage your exception
        }

        final int DEFAULT_TIMEOUT = 30 * 1000;
        clientHttp.setTimeout(DEFAULT_TIMEOUT);
        clientHttp.post("http://somereceiver.php", params, new JsonHttpResponseHandler() {

            @Override
            public void onSuccess(JSONObject response) {
                //Do your code on success
            }
            @Override
            public void onStart() {
                                   // Show your progress bar

            }
            @Override
            public void onFinish() {
                                  // Hide your progress bar
                                  super.onFinish();
                if(PATH_FILE_1 != null) {
                    File tem = new File(PATH_FILE_1);
                    if(tem.exists()) tem.delete();
                }
                if(PATH_FILE_2 != null) {
                    File tem = new File(PATH_FILE_2);
                    if(tem.exists()) tem.delete();
                }
                if(PATH_FILE_3 != null) {
                    File tem = new File(PATH_FILE_3);
                    if(tem.exists()) tem.delete();
                }
            }
        });

json が必要ない場合は、一般的な応答タイプを使用して、文字列を取得することもできます。

お役に立てれば。

于 2014-03-21T15:19:30.060 に答える