将图像文件从 IOS 上传到网络服务器

upload image files from IOS to web server

考虑到 IOS9 和 swift 2.

java 将图像文件上传到 Web 服务器的最佳方法是什么

经过搜索,我意识到有人提出了类似的问题,并且网上有许多不同的方法可以上传图片。但是我不确定最好的方法是什么。

我尝试了以下方法,发现上传图片大约需要一分钟。

****方法一:****

使用 NSURLSession 并调用 java servlet 的“POST”方法 按照 example

中所述发送为 JSON

按照本 example

中的说明将图像附加到 httpbody 本身

****方法二:****

使用 NSURL 并调用 java脚本方法,如此 example

我还阅读了 AFNetworking 2.0 (ex),我不确定它是否可以为上传过程带来任何性能提升。

我们的用户每天可能会拍摄大约 100 张图片,这些图片需要上传到网络服务器进行进一步处理。

请审阅并提出您的意见。非常感谢。

我实际上是在开发社交应用程序并在 API 上上传照片,我个人使用 base64。

我只是对图像进行编码,所以我有一个编码字符串和 API 解码并将其放在 AWS 上。

我在 Swift 2.0 和 iOS 9. 如果你想要一段代码:

// You create a NSData from your image
var imageData = UIImageJPEGRepresentation(imageURL.image!, 0.5)
// You create a base64 string
let base64String = imageData!.base64EncodedStringWithOptions([])
// And you encode it in order to delete any problem of specials char
let encodeImg = base64String.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet()) as String!

从您的图像创建 base64 字符串并将其发送到网络服务器。

let imageData = UIImageJPEGRepresentation(imageURL.image!, 0.5)
let base64String = imageData!.base64EncodedStringWithOptions([])

在您的网络服务器中,读取输入图像字符串并按如下方式解析。

byte[] imageBytes = javax.xml.bind.DatatypeConverter.parseBase64Binary(base64Image);

然后你可以用这样的字节做任何你喜欢的事情:

BufferedImage img = ImageIO.read(new ByteArrayInputStream(imageBytes));