Я использую приложение Android для загрузки изображения, сделанного с помощью камеры. Камера возвращает растровое изображение, которое передается в задачу загрузки. Сервер получает изображение и сохраняет его, но, похоже, он отформатирован неправильно; Я не могу просмотреть изображение. Есть ли что-то, что мне не хватает в функции Android Bitmap.compress()
? Я не знаком с форматированием изображений, поэтому любая помощь wuld действительно ценится.Android: растровое изображение, загруженное через HttpURLConnection, не используется
Вот код, в котором записывается битовая карта:
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(15000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setRequestProperty("Connection", "Keep-Alive");
conn.setRequestProperty("ENCTYPE", "multipart/form-data");
conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary);
conn.setRequestProperty("imageToUpload", "ups.jpg");
String sUserID = Integer.toString(mUserID);
OutputStream os = conn.getOutputStream();
os.write((dbHyphen + boundary + lnEnd).getBytes());
os.write(("Content-Disposition: form-data; name=\"p\"" + lnEnd).getBytes());
os.write(("Content-Type: text/plain; charset=UTF-8"+ lnEnd).getBytes());
os.write(lnEnd.getBytes());
os.write(sUserID.getBytes());os.write(lnEnd.getBytes());
os.write(lnEnd.getBytes());
os.write((dbHyphen + boundary + lnEnd).getBytes());
os.write(("Content-Disposition: form-data; name=\"imageToUpload\";filename="
+ "ups.jpg" + lnEnd).getBytes());
os.write((lnEnd).getBytes());
ByteArrayOutputStream bos = new ByteArrayOutputStream();
mImage.compress(Bitmap.CompressFormat.JPEG, 85, bos);
byte[] bitmapdata = bos.toByteArray();
os.write(bitmapdata);
os.write((lnEnd).getBytes());
os.write((dbHyphen + boundary + dbHyphen + lnEnd).getBytes());
os.close();
EDIT: Выгрузка он получил и сохранить с помощью PHP
move_uploaded_file($_FILES['imageToUpload']['tmp_name'], $file_path))
Какой сервер? Вы обвиняете сервер или ваш код Android? – greenapps
Сколько байтов в загружаемом файле? Сколько в сохраненном? – greenapps
Он загружается на веб-сервер и обрабатывается через php. Буфер битмап записывается для чтения байта [4505] @ 3894 в отладчике (нужно искать значение этого синтаксиса). Файл, скопированный на мой локальный диск, составляет 4,882 байт. Он никогда не сохраняется как фактический файл на Android. –