Uri 轉爲 File
//uri轉爲file
Uri uri; //獲取到的uri
String[] arr = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(uri, arr, null, null, null);
if (cursor != null) {
int img_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
String img_path = cursor.getString(img_index);
File file = new File(img_path); //得到的File
cursor.close(); //釋放資源
} else {
ToastUtils.showShort("cursor: null");
}
Retrofit上傳文件
File imgFile;//模擬的File文件
/**
* 下面兩步把File轉爲了MultipartBody.Part,才能使用retrofit上傳
* MultipartBody.Part.createFormData()的一參:"file"是後臺指定的key
**/
RequestBody photoRequestBody = RequestBody.create(MediaType.parse("image/*"), imgFile);
MultipartBody.Part userImage = MultipartBody.Part.createFormData("file", imgFile.getName(), photoRequestBody);
//使用retrofit上傳文件
RetrofitUtils.getInstance().getApiServier(IMapService.class)
.fileUpload(userImage, UserUtil.getUserToken())
...略