В моем приложении для Android мне нужно загрузить изображение из папки Assets / Drawable / raw на сервер.
Я попробовал следующее:
InputStream fileInputStream;
if(imageChanged) {
File file = New File("filename");
fileInputStream = new FileInputStream(file);
}else {
fileInputStream = ctx.getAssets().open("default.png");
}
int bytesAvailable;
byte[] buffer = new byte[102400];
while((bytesAvailable = fileInputStream.available()) > 0) {
int bufferSize = Math.min(bytesAvailable, 102400);
if(bufferSize<102400){
buffer = new byte[bufferSize];
}
int bytesRead = fileInputStream.read(buffer, 0,bufferSize);
dos.write(buffer, 0, bytesRead);
}
Это выполняется нормально. Я могу прочитать входной поток и записать байты в DataOutputStream, изображение загружено на сервер.
Так или иначе, изображение на сервере кажется поврежденным - только для изображения по умолчанию (загружено в блоке else. Изображение блока if не повреждается)
Я также попытался поместить default.png в папку «raw» и попробовал следующее
fileInputStream = ctx.getResources().openRawResource(R.drawable.default);
Здесь тот же результат - изображение на сервере повреждено.
Я начинаю сомневаться в том, что это потому, что default.png находится в пространстве приложения.
Могу ли я получить некоторую помощь в правильном способе загрузки изображения в область приложения (рисовать / активировать / сырье)?
спасибо!
Ними