Java 使用InputStreams上载图像=内存不足错误
我正试图上传一张图片,但如果安卓设备上的图片文件超过2兆,我会遇到一些内存不足的错误Java 使用InputStreams上载图像=内存不足错误,java,android,Java,Android,我正试图上传一张图片,但如果安卓设备上的图片文件超过2兆,我会遇到一些内存不足的错误 File file = new File(<my image file>); FileInputStream fis = new FileInputStream(file); HttpClient client = new HttpClient(); PutMethod method = new PutMethod(myUrl); RequestEntity requestEntity = ne
File file = new File(<my image file>);
FileInputStream fis = new FileInputStream(file);
HttpClient client = new HttpClient();
PutMethod method = new PutMethod(myUrl);
RequestEntity requestEntity = new InputStreamRequestEntity(fis);
method.setRequestEntity(requestEntity);
client.executeMethod(method);
该类表示您仍在使用旧的
因此,您有3种选择:
java.net.URLConnection
,将其转换为HttpURLConnection
,并设置流模式。例如
((HttpURLConnection) connection).setChunkedStreamingMode(1024);
它将以1KB的块发送请求正文构造不带长度的
InputStreamRequestEntity
会导致它在本地缓冲数据,以便确定长度。因为它是一个文件,所以请改用FileRequestEntity
,因为它将根据文件确定大小。效果很好。我复制了FileRequestEntity,并将使用我自己的版本,因为它将为我提供一个完美的地方来连接进度条!
((HttpURLConnection) connection).setChunkedStreamingMode(1024);