在不使用字符串的情况下将图像上传到android中的服务器

Posted

技术标签:

【中文标题】在不使用字符串的情况下将图像上传到android中的服务器【英文标题】:Uploading image to server in android without using String 【发布时间】:2014-07-29 15:41:22 【问题描述】:

我正在使用字符串从我的 android 应用程序上传图像,即;每次我想将图像上传到服务器端时,我都必须使用 Base64 将图像解码为字符串并将其添加到

List<NameValuePair> list;

并将其发送到服务器,服务器将该字符串存储到数据库中,当我请求查看图像时,它们会向我提供该字符串图像作为响应,然后我必须将字符串编码为图像,并且存在图像为大得多,表不能容纳完整的值,所以它传递给我不完整的字符串作为响应并且它被撞了。 有什么方法可以将图像直接放到服务器上,而无需每次都将其转换为字符串,有时它似乎效率很低。 PUT 方法有用吗?我可以使用PUT方法直接上传文件吗?

【问题讨论】:

【参考方案1】:

可以使用android自带的HttpClient(apache)库的FileBody。我个人更喜欢使用HttpRequest library。只需将 HttpRequest.java 文件复制到您的项目中即可。以下是您将图像上传到服务器的方法:

HttpRequest request = HttpRequest.post("http://google.com");
request.part("status[body]", "Making a multipart request");
request.part("status[image]", new File("/home/kevin/Pictures/ide.png"));
if (request.ok())
  System.out.println("Status was updated");

【讨论】:

request.part("key","value");是这样的服务器会接收吗?? 是的,如果您使用 php,“key”就是您在 serer 中用作 $_POST['key'] 的参数。 服务器正在运行 node.js 并且图像将作为图像存储在服务器程序将图像存储在我发送字符串时存储在数据库表中的位置。 这是一个带有文件的 http post 方法,就像浏览器一样。我不知道 node.js 但它是 http post 所以所有程序都支持它 感谢您的帮助,我会努力的

以上是关于在不使用字符串的情况下将图像上传到android中的服务器的主要内容,如果未能解决你的问题,请参考以下文章

将图像上传到服务器android

Android:如何在不加载完整位图的情况下将流式图像即时渲染到 ImageView?

如何在不丢失 exif 数据的情况下将 UIImage 转换为 JPEG?

在不编码的情况下将 NSData 转换为 NSString

如何在不使用画布的情况下将整个 div 数据转换为图像并将其保存到目录中?

在不加载/执行脚本/图像的情况下将 HTML 字符串转换为 HTML DOM?