Отправка файла> 1 МБ с использованием HTTP POST
Я отправляю видео и аудио файлы из приложения Android на Wampserver
некоторые из них могут стать довольно большими, и я, как правило, получаю OutofMemory
проблемы, когда файл примерно закончился 1MB
по размеру.
Я конвертирую каждый файл отдельно в поток байтов. Я думаю, что поток байтов слишком велик, следовательно, OutofMemory
,
Как я могу остановить эту ошибку от появления?
3 ответа
Используя ссылку, предложенную Maxium здесь:
Загрузка файлов на HTTP-сервер с помощью POST на Android.
Затем я нашел эту ошибку нехватки памяти в Android, чтобы исправить ошибку.
Заменить:
while (bytesRead > 0)
{
outputStream.write(buffer, 0, bufferSize);
bytesAvailable = fileInputStream.available();
bufferSize = Math.min(bytesAvailable, maxBufferSize);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
}
с:
while (bytesRead > 0){
bufferSize = Math.min(bytesAvailable, maxBufferSize);
byte byt[]=new byte[bufferSize];
fileInputStream.read(byt);
bytesRead = fileInputStream.read(buffer, 0, bufferSize);
outputStream.write(buffer, 0, bufferSize);
}
Посмотрите на этот пример:
Если у вас есть большой размер данных, таких как большой файл или большое изображение / изображение хорошего качества, для отправки на сервер, вы можете отправить их по частям / порциями.
Сначала установите соединение Http с сервером, а затем отправьте куски с DataOutputStream
Учебный класс. На стороне сервера также необходимо реализовать код для получения этих чанков и собрать их в один файл, как только вы получите все чанки.