【问题标题】:Android post image using MultipartEntity使用 MultipartEntity 的 Android 发布图像
【发布时间】:2014-04-29 00:10:56
【问题描述】:

我正在尝试使用POST 方法将多个图像连同一些其他参数(字符串)上传到PHP 服务器。我正在使用多部分方法。我添加了各种解决方案中规定的 4 个库(apachemime、httpclient、httpmime、httpcore),但我的 SDK 无法识别 MultipartEntity,显示错误:'cannot be resolved to a type'。我也试过MultipartEntityBuilder,但即使这样也显示相同的错误。我基本上想将一个位图数组列表上传到服务器并同时显示一个进度条。

【问题讨论】:

    标签: android post progress-bar image-uploading multipartentity


    【解决方案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,你也可以使用通用响应类型,所以你会得到一个字符串。

    希望这会有所帮助。

    【讨论】:

    • 我尝试了各种教程,但都有相同的基本错误,即无法识别 MultipartEntity。
    • @Menon 你打算试试 AsyncHttpClient 库吗?...如果你不发布你的代码。
    • 兄弟,我没有将图像存储在本地数据库中。只进入位图数组列表。
    • wat 是上传 Arraylist 的最佳方式??
    猜你喜欢
    • 1970-01-01
    • 2013-06-13
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 2012-09-07
    • 1970-01-01
    相关资源
    最近更新 更多