Android - 将大图像上传到服务器

标签 android

我正在尝试使用下面的代码让我的应用程序将图像上传到网络服务器。它有时会起作用,但似乎也会因内存错误而失败。如果文件太大,有人可以发布一个如何完成此操作的示例吗?此外,我正在构建它以支持 1.5 及更高版本。我不介意提供给我的代码是否会在上传前将图像尺寸调整得更小。

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(urlString);

File file = new File(nameOfFile);

FileInputStream fileInputStream = new FileInputStream(file);
InputStreamEntity reqEntity = new InputStreamEntity(fileInputStream, file.length());

httppost.setEntity(reqEntity);
reqEntity.setContentType("binary/octet-stream");
HttpResponse response = httpclient.execute(httppost);
HttpEntity responseEntity = response.getEntity();

if (responseEntity != null) {
    responseEntity.consumeContent();
}

httpclient.getConnectionManager().shutdown();

最佳答案

您有两个选项可以使您的代码可用。

  1. 您应该使用多部分方法上传更大的文件。我在我的代码中使用的。 Its Apache code . (是的,您可以轻松地将其移植到您的 Android 项目中)。

  2. 您可以最小化图像分辨率。通过使用 SampleSize 标志, 关注this链接。

希望对你有帮助。

关于Android - 将大图像上传到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4941580/

相关文章:

java - Android - 在 map 中仅显示确定区域中包含的标记

android - 单击android中的基本适配器时如何更改文本颜色

主屏幕应用程序的 android 源代码

java - 如何在 X 秒后消除 Google Glass 中的静态卡?

android - 如何在 Android Studio 上更改布局预览默认设备

java - 添加到listView的顶部

android - 为 Android 使用 OpenCv contrib 模块

c# - 增加 Vector3 的 Y 值

android - 以编程方式自定义 ScrollBar

android Canvas 滚动