Android 模擬表單上傳 多圖片上傳
阿新 • • 發佈:2019-02-02
關鍵程式碼
//private List<String> mPictureList;
//private String mRealName;
//private String mUserCity;
//private String mInvitationCode;
//private int mSex;
//獲取使用者輸入的資訊和選擇的圖片,儲存路徑到mPictureList
//點選上傳按鈕開始上傳
private void uploadInfo() {
//mProgressDialog.show();
okhttp3.MediaType MEDIA_TYPE_PNG = okhttp3.MediaType .parse("image/jpg");
okhttp3. OkHttpClient client = new okhttp3.OkHttpClient();
MultipartBody.Builder builder = new MultipartBody.Builder().setType(MultipartBody.FORM);
builder.addFormDataPart("uid", uid);
builder.addFormDataPart("realname", mRealName);
builder.addFormDataPart ("sex", mSex+"");
builder.addFormDataPart("city",mUserCity);
for (int i = 0; i < mPicturePathList.size(); i++) {
File f = new File(mPicturePathList.get(i));
if (f.exists()) {
builder.addFormDataPart("image[]", f.getName(), okhttp3.RequestBody .create(MEDIA_TYPE_PNG,f));
LogUtils.i("imagefilepath="+f.getAbsolutePath());
}
}
MultipartBody requestBody = builder.build();
//構建請求
okhttp3.Request request = new okhttp3.Request.Builder()
.url(url)//地址
.post(requestBody)//新增請求體
.build();
client.newCall(request).enqueue(new okhttp3.Callback() {
@Override
public void onFailure(Call call, IOException e) {
LogUtils.i("onFailure" + e.toString());
//失敗
Message message = handler.obtainMessage();
message.what = 2;
message.obj=e;
handler.sendMessage(message);
}
@Override
public void onResponse(Call call, okhttp3.Response response) throws IOException {
String htmlStr = response.body().string();
if (!TextUtils.isEmpty(htmlStr)){
LogUtils.i("htmlStr="+htmlStr);
//成功
}
}
});
}