Я пытаюсь загрузить изображение, используя этот код:как загрузить изображение, используя массив байтов
private String uploadFile() {
String responseString = null;
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(Config.FILE_UPLOAD_URL_M);
Log.i("UploadApp", "upload url: " + Config.FILE_UPLOAD_URL_M);
AndroidMultiPartEntity entity;
entity = new AndroidMultiPartEntity(
new AndroidMultiPartEntity.ProgressListener() {
@Override
public void transferred(long num) {
// publishProgress((int) ((num/(float) totalSize) * 100));
}
});
File sourceFile;
sourceFile = new File(compressImage(filePath));
Log.i("UploadApp", "file path: " + filePath);
// Adding file data to http body
entity.addPart("f", new FileBody(sourceFile)); //problem is here
entity.addPart("category", new StringBody("Bill"));
entity.addPart("description", new StringBody("test single"));
entity.addPart("file", new StringBody("unknown1"));
entity.addPart("clientid", new StringBody("4"));
totalSize = entity.getContentLength();
httppost.setEntity(entity);
// Making server call
HttpResponse response = httpclient.execute(httppost);
HttpEntity r_entity = response.getEntity();
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
// Server response
responseString = EntityUtils.toString(r_entity);
} else {
responseString = "Error occurred! Http Status Code: " + statusCode;
}
} catch (ClientProtocolException e) {
responseString = e.toString();
Log.e("UploadApp", "exception: " + responseString);
} catch (IOException e) {
responseString = e.toString();
Log.e("UploadApp", "exception: " + responseString);
}
return responseString;
}
У меня есть веб-сервис для загрузки изображения, которое имеет 5 параметров и 4 из них являются строкой, но один байт array (byte [] f)
Основная проблема: Как преобразовать исходный файл (изображение) в массив байтов, чтобы загрузить изображение на сервер в приведенном выше коде, соответствующем этой веб-службе.
Ваш код уже загружает файл в виде массива байтов. Обычная загрузка нескольких частей делает это. – greenapps