android okhttp上傳文件參數(shù) 相冊根據(jù)uri獲取照片路徑

public class UploadImgUtils {

public static final StringMULTIPART_FORM_DATA ="Multipart/form-data";? ? ? // 指明要上傳的文件格式

? ? public static void okHttpUpload(String url,List keyList,List valueList,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? String fileKeyName,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? List imgList,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? final UploadCallback callback){

// 初始化請求體對象,設(shè)置Content-Type以及文件數(shù)據(jù)流

? ? ? ? MultipartBody.Builder builder =new MultipartBody.Builder()

.setType(MultipartBody.FORM);? ? ? // multipart/form-data

? ? ? ? for(int i=0;i

builder.addFormDataPart(keyList.get(i),valueList.get(i));

? ? ? ? }

if(imgList!=null){

if(!imgList.isEmpty()){

for(int i=0;i

File mFile =new File(imgList.get(i));

? ? ? ? ? ? ? ? ? ? RequestBody mRequestFile =// 根據(jù)文件格式封裝文件

? ? ? ? ? ? ? ? ? ? ? ? ? ? RequestBody.create(MediaType.parse(MULTIPART_FORM_DATA), mFile);

? ? ? ? ? ? ? ? ? ? builder.addFormDataPart(fileKeyName,mFile.getName(),mRequestFile);

? ? ? ? ? ? ? ? }

}

}

RequestBody requestBody =builder.build();

? ? ? ? // 封裝OkHttp請求對象,初始化請求參數(shù)

? ? ? ? Request request =new Request.Builder()

.url(APIField.getAppServiceUrl()+"/4S-web/"+url)// 上傳url地址

? ? ? ? ? ? ? ? .post(requestBody)// post請求體

? ? ? ? ? ? ? ? .build();

? ? ? ? final okhttp3.OkHttpClient.Builder httpBuilder =new OkHttpClient.Builder();

? ? ? ? OkHttpClient okHttpClient? = httpBuilder

.connectTimeout(100, TimeUnit.SECONDS)// 設(shè)置請求超時時間

? ? ? ? ? ? ? ? .writeTimeout(150, TimeUnit.SECONDS)

.build();

? ? ? ? // 發(fā)起異步網(wǎng)絡(luò)請求

? ? ? ? okHttpClient.newCall(request).enqueue(new Callback() {

@Override

? ? ? ? ? ? public void onResponse(Call call, okhttp3.Response response)throws IOException {

if (callback !=null){

callback.onResponse(call, response);

? ? ? ? ? ? ? ? }

}

@Override

? ? ? ? ? ? public void onFailure(Call call, IOException e) {

if (callback !=null){

callback.onFailure(call, e);

? ? ? ? ? ? ? ? }

}

});

? ? }

/**

* 根據(jù)uri獲取當(dāng)前路徑

*/

? ? public static StringtoGetStringFOrUri(Context context,Uri uri, String selection, String[] selectionArgs){

Cursor cursor =null;

? ? ? ? final String column ="_data";//路徑保存在downloads表中的_data字段

? ? ? ? final String[] projection = {column};

? ? ? ? try {

cursor =context.getContentResolver().query(uri, projection, selection, selectionArgs, null);

? ? ? ? ? ? if (cursor !=null && cursor.moveToFirst()) {

final int column_index = cursor.getColumnIndexOrThrow(column);

? ? ? ? ? ? ? ? return cursor.getString(column_index);

? ? ? ? ? ? }

}catch (Exception e) {

e.printStackTrace();

? ? ? ? }finally {

if (cursor !=null)

cursor.close();

? ? ? ? }

return null;

? ? }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容