Я успешно загрузил изображение из моего приложения для Android в папку на сервере, используя веб-сервис php, но изображение хранится в текстовом / x-genric типе вместо 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();
}
Существует не стандарт изображения / x-универсального типа. Часто используемые типы Вот. Так что используйте image / jpg, вероятно.
private static final MediaType MEDIA_TYPE = MediaType.parse("image/jpg");
Также, вероятно, основная проблема заключается в обработке этого запроса сервером (возможно, для неожиданного типа изображения).
Добавьте .jpg к значению имени в этой строке кода
.addFormDataPart("filename", "name.jpg", RequestBody