我已经使用php web服务将我的Android应用程序中的图像成功上传到服务器文件夹,但图像存储在text / x-genric Type而不是image / x-genric中。我使用OkhttpClient将图像从我的应用程序上传到服务器。此外,服务器上存储的图像不具有其原始图像名称。请问各位我如何解决这两个问题。我的上传代码如下所示,谢谢。
上传代码:
public class HttpUploader2 extends AsyncTask<String, Void, Integer> {
private static final MediaType MEDIA_TYPE = MediaType.parse("image/*");
private final OkHttpClient client = new OkHttpClient();
public HttpUploader2(){
}
@Override
protected Integer doInBackground(String... imgPath) {
Response response = null;
for (String path: imgPath){
RequestBody requestBody = new MultipartBuilder()
.type(MultipartBuilder.FORM)
.addFormDataPart("name", "Profile Pic")
.addFormDataPart("filename", "name", RequestBody
.create(MEDIA_TYPE, new File(path)))
.build();
Request request = new Request.Builder()
.url(Const.IMAGE_UPLOAD_URL)
.post(requestBody)
.build();
try {
response = client.newCall(request).execute();
Log.e("Path: ", path);
Log.e("Body: ", ""+response.body().string());
Log.e("Code: ", ""+response.code());
if (!response.isSuccessful()){
return response.code();
}else {
return response.code();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return response.code();
}
答案 0 :(得分:0)
没有image / x-generic类型的标准。经常使用的类型是here。所以可能使用image / jpg。
private static final MediaType MEDIA_TYPE = MediaType.parse("image/jpg");
也可能主要问题是服务器处理此请求(可能是意外的图像类型)。
答案 1 :(得分:0)
将.jpg添加到此行代码中的名称值
.addFormDataPart("filename", "name.jpg", RequestBody
答案 2 :(得分:0)
使用与文件相同的格式重命名文件名并保存,例如它是image.PNG,然后将其重命名为image.png,这样就可以正常工作。