我在服务器上传图像时完全得到了结构。我从服务器成功获得响应,但图像未在服务器上上传。总是要求"插入您的图像"。
这是我的代码请检查一下,我犯了错误
private void uploadFile(Uri fileUri) {
File file = new File(fileUri.getPath());
if (file.exists()) {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();
Log.e(TAG, "uploadFile:File "+file );
MediaType MEDIA_TYPE_PNG = MediaType.parse("multipart/form-data");
APIInterface service = retrofit.create(APIInterface.class);
RequestBody requestFile = RequestBody.create(MEDIA_TYPE_PNG, file);
Log.e(TAG, "uploadUri: " + strEmpsno + " " + strStoreSno + " " + strLrno + " " + strRecqty + " " + strDeliverydate + " " + strDeliverytime);
Call<PODResponse> call = service.postFile(strEmpsno, strStoreSno, strLrno, strRecqty, strRecvol,
strRecwgt, strDamageqty, strLooseqty, strDeliverydate
, strDeliverytime, requestFile, strRemarks, strReceivedby,
strIpaddress);
call.enqueue(new Callback<PODResponse>() {
@Override
public void onResponse(Response<PODResponse> response) {
Log.e(TAG, "onResponse:uploadUri " + response.isSuccess());
if (response.isSuccess()) {
Log.e(TAG, "uploadUri: " + response.body().getResult());
}
}
@Override
public void onFailure(Throwable t) {
Log.e(TAG, "onFailure:uploadUri " + t.getLocalizedMessage());
}
});
}
}
记录Log.e(TAG, "uploadFile:File "+file );
我正在
/storage/emulated/0/Audex/saved_images/logo.jpg
这是我的Image name with path
。从Rest(chrome extension)
图像成功存储在服务器上,但不是使用此代码。请帮帮我。
我的界面就像
@Multipart
@POST("/savePic")
Call<PODResponse> postFile(
@Part("empsno") String empsno,
@Part("storesno") String storesno,
@Part("lrSno") String lrSno,
@Part("recQty") String recQty,
@Part("recVol") String recVol,
@Part("recWgt") String recWgt,
@Part("damageQty") String damageQty,
@Part("looseQty") String looseQty,
@Part("deliveryDate") String deliveryDate,
@Part("deliveryTime") String deliveryTime,
@Part("uploadFile\"; filename=\"audex.jpg\" ") RequestBody part,
@Part("remarks") String remarks,
@Part("receivedBy") String receivedBy,
@Part("ipAddress") String ipAddress
);
提前全部谢谢
答案 0 :(得分:0)
很长一段时间后,我得到了答案。谢谢所有为我而努力的人。只有错误是我把RequestBody而不是String。
@Multipart
@POST("/savePic")
Call<PODResponse> postFile(
@Part("empsno") String empsno,
@Part("storesno") String storesno,
@Part("lrSno") String lrSno,
@Part("recQty") String recQty,
@Part("recVol") String recVol,
@Part("recWgt") String recWgt,
@Part("damageQty") String damageQty,
@Part("looseQty") String looseQty,
@Part("deliveryDate") String deliveryDate,
@Part("deliveryTime") String deliveryTime,
@Part("uploadFile\"; filename=\"audex.jpg\" ") String part, // Change here
@Part("remarks") String remarks,
@Part("receivedBy") String receivedBy,
@Part("ipAddress") String ipAddress
@Part MultipartBody.Part images
);
@Part("uploadFile\"; filename=\"audex.jpg\" ") String part
我只是将RequestBody更改为字符串,最后添加了@Part MultipartBody.Part images
。
**我使用的依赖是
compile 'com.squareup.retrofit2:retrofit-converters:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-scalars:2.0.2'