【发布时间】:2012-04-02 11:35:29
【问题描述】:
我正在将视频和音频文件从我的 Android 应用程序发送到 Wampserver,其中一些可能会变得非常大,当文件大小大约超过 1MB 时,我往往会遇到 OutofMemory 问题。
我将每个文件单独转换为字节流。我认为字节流太大,因此OutofMemory。
如何阻止此错误的发生?
【问题讨论】:
标签: android http-post large-file-upload
我正在将视频和音频文件从我的 Android 应用程序发送到 Wampserver,其中一些可能会变得非常大,当文件大小大约超过 1MB 时,我往往会遇到 OutofMemory 问题。
我将每个文件单独转换为字节流。我认为字节流太大,因此OutofMemory。
如何阻止此错误的发生?
【问题讨论】:
标签: android http-post large-file-upload
【讨论】:
使用这里建议的 Maxium 链接:
Uploading files to HTTP server using POST on Android.
然后我找到了这个Out of Memory error in 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 类的块。同样在服务器端,您需要实现代码来接收这些块,并在获得所有块后将它们放在一个文件中。
【讨论】: