Отправка файла> 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 Учебный класс. На стороне сервера также необходимо реализовать код для получения этих чанков и собрать их в один файл, как только вы получите все чанки.

Другие вопросы по тегам