android批量上傳圖片(模仿QQ空間和微信發表說說)

android批量上傳圖片(模仿QQ空間和微信發表說說)
**請大家關注下我的微信公衆號:哦哦猿
QQ羣:552123831**
首先我們來看下效果
這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

這個是啓動方法:HttpPostUtil.saveimage(imgsz);

sendTv = (TextView) findViewById(R.id.action);
        sendTv.setText("發送");
        sendTv.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                String imgsz[] = new String[mDataList.size()];
                //title=titleed.getText().toString();
                Log.e(" mDataList.size()",  mDataList.size()+"");
                int i;
                String guid=java.util.UUID.randomUUID()+"";
                   for ( i = 0; i < mDataList.size(); i++) {
                           imgsz[i]=mDataList.get(i).sourcePath;
                    }
                   removeTempFromPref();
                    HttpPostUtil.saveimage(imgsz);
                  // Log.e("ttt", title);
                   mDataList.clear();
            }
        });

然後我們在看看網絡請求和上傳文件:

package com.nui.multiphotopicker.util;

import java.io.File;
import java.util.List;
import java.util.Map;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.ContentBody;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.util.EntityUtils;

import android.util.Log;

import com.alibaba.fastjson.JSON;

public class HttpPostUtil {
    //private static DengRuData dengRuData;
    public static String data = "";
    static File uploadFile;
    public static List<Map<String, String>> username_list;

    /** 保存頭像 */
    public static String saveimage(final String uploaded_picture[]) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                HttpClient httpClient = new DefaultHttpClient();
                String urlStr = "你的接口";
                HttpPost httpPost = new HttpPost(urlStr);
                try {
                    uploadFile = new File(uploaded_picture[0]);
                    httpClient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION,HttpVersion.HTTP_1_1);
                    MultipartEntity mpEntity = new MultipartEntity(); // 文件傳輸
                    ContentBody cbFile = new FileBody(uploadFile);
                    mpEntity.addPart("uploaded_picture", cbFile);
                    httpPost.setEntity(mpEntity);
                    // httpClient執行httpPost提交
                    HttpResponse response = httpClient.execute(httpPost);
                    // HttpResponse response =
                    // filterExecutePost(httpClient,httpPost);
                    // 得到服務器響應實體對象
                    HttpEntity responseEntity = response.getEntity();
                    if (responseEntity != null) {
                        /** 服務器返回 */
                        data = EntityUtils.toString(responseEntity, "utf-8");
                        Log.e("我愛你", data);
                    //  dengRuData = JSON.parseObject(data, DengRuData.class);
                        //String id = dengRuData.getData();
                        //int setStatus = dengRuData.getStatus();
                            if (uploaded_picture.length > 1) {
                                for (int i = 1; i < uploaded_picture.length; i++) {
                                    http_file(uploaded_picture[i]);
                            }
                        }
                    }
                    if (responseEntity == null) {
                        Log.e("------->", "值還沒加載出來");
                    }
                } catch (Exception e) {
                } finally {
                    // 釋放資源
                    httpClient.getConnectionManager().shutdown();
                }
            }
        }).start();
        return data;
    }
    public static String http_file(final String uploaded_picture) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                HttpClient httpClient = new DefaultHttpClient();
                String urlStr = "你的接口";
                HttpPost httpPost = new HttpPost(urlStr);
                try {
                    uploadFile = new File(uploaded_picture);
                    httpClient.getParams().setParameter(
                            CoreProtocolPNames.PROTOCOL_VERSION,
                            HttpVersion.HTTP_1_1);
                    MultipartEntity mpEntity = new MultipartEntity(); // 文件傳輸
                    ContentBody cbFile = new FileBody(uploadFile);
                    mpEntity.addPart("uploaded_picture", cbFile); // <input type="file"
                                                        // name="userfile" />
                                                        // 對應的
                    httpPost.setEntity(mpEntity);
                    // httpClient執行httpPost提交
                    HttpResponse response = httpClient.execute(httpPost);
                    // HttpResponse response =
                    // filterExecutePost(httpClient,httpPost);
                    // 得到服務器響應實體對象
                    HttpEntity responseEntity = response.getEntity();
                    if (responseEntity != null) {
                        /** 服務器返回 */
                        data = EntityUtils.toString(responseEntity, "utf-8");
                    }
                    if (responseEntity == null) {
                        Log.e("------->", "值還沒加載出來");
                    }
                } catch (Exception e) {
                } finally {
                    // 釋放資源
                    httpClient.getConnectionManager().shutdown();
                }
            }
        }).start();
        return data;
    }
}

大致就是這個樣子
這裏寫圖片描述
因爲代碼太多 ,我就不在這裏一一的貼出來,有什麼不懂的歡迎來的我羣號,資源在羣裏面,我就不在這裏貼了。
QQ羣:552123831
微信公衆號:哦哦猿
謝謝大家

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章