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
微信公衆號:哦哦猿
謝謝大家