如何将上传的图像从text / x-generic更改为image / x-generic

时间:2014-12-15 16:25:41

标签: java php android image okhttp

我已经使用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();
}

3 个答案:

答案 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,这样就可以正常工作。