java多张图片上传安卓,Android Rxjava+Retrofit2 多图片+文字上传
注意點:
方案一中:map.put(“files\”; filename=\”” + file.getName(), requestBody);
方案二中:builder.addFormDataPart(“files”, file.getName(), imageBody);
需與服務器一制,如:Content-Disposition: form-data; name=”files”; filename=”1.jpg”)
方案一:
@Multipart
@POST("upload/v1/images")
Observable> uploadImages(@Header("token") String token, @Part("appkey") RequestBody appkey, @Part("sign") RequestBody sign,
@PartMap() Mapmap);
/**
* 上傳
* @param compressFile 需要上傳的文件
*/
private void upload(ListcompressFile) {
LogUtil.e(TAG, "uploadImages: 開始上傳...");
//多張圖片
Mapmap = new HashMap<>();
if (compressFile != null && !compressFile.isEmpty()) {
for (int i = 0; i < compressFile.size(); i++) {
File file = compressFile.get(i);
LogUtil.e(TAG, "upload: path: " + file.getAbsolutePath());
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
map.put("files\"; filename=\"" + file.getName(), requestBody);
}
}
RequestBody appkey = RequestBody.create(null, Api.APPKEY);
RequestBody sign = RequestBody.create(null, Api.SIGN);
mApiWrapper.uploadImages(appkey, sign, map)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull Object t) {
LogUtil.e(TAG, "uploadImages: 上傳成功");
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
}
});
}
方案二:
@Multipart
@POST("upload/v1/images")
Observable> uploadImages1(@Header("token") String token, @Part ListpartList);
/**
* 上傳
* @param compressFile 需要上傳的文件
*/
private void upload(ListcompressFile) {
LogUtil.e(TAG, "uploadImages: 開始上傳...");
//多張圖片
MultipartBody.Builder builder = new MultipartBody.Builder()
.setType(MultipartBody.FORM)//表單類型
.addFormDataPart("appkey", Api.APPKEY)
.addFormDataPart("sign", Api.SIGN);
for (int i = 0; i < compressFile.size(); i++) {
File file = compressFile.get(i);
RequestBody imageBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
builder.addFormDataPart("files", file.getName(), imageBody);
}
Listparts = builder.build().parts();
mApiWrapper.uploadImages(parts)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer() {
@Override
public void onSubscribe(@NonNull Disposable d) {
}
@Override
public void onNext(@NonNull Object t) {
LogUtil.e(TAG, "uploadImages: 上傳成功");
}
@Override
public void onError(@NonNull Throwable e) {
}
@Override
public void onComplete() {
}
});
總結
以上是生活随笔為你收集整理的java多张图片上传安卓,Android Rxjava+Retrofit2 多图片+文字上传的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python模块学习
- 下一篇: 自定义权限 android,如何在And