将多张图片作为 Facebook 快速上传到服务器 iOS
Posted
技术标签:
【中文标题】将多张图片作为 Facebook 快速上传到服务器 iOS【英文标题】:Upload multiple pictures to server iOS Fastly as Facebook 【发布时间】:2016-07-23 05:32:00 【问题描述】:我们创建了一个可以将多个图像上传到服务器的应用程序(php REST API),但是上传需要更多时间,如果我将 10 个图像添加到队列中,则应用程序响应缓慢
我们看到 Facebook ios 应用可以轻松上传多张图片(它尝试了 32 张)并且在 15 秒内上传
他们如何将图片快速上传到服务器,以及他们如何在应用手机内存中进行管理
他们在上传到服务器之前会降低质量吗?
服务器和应用的规格:
xCode:7.3
用于上传图像的 Alamofire [Multipart] - API 调用
PHP:5.5.9-1
Apache2:2.4.7
mysql:5.5.49-0
PHP 配置:
memory_limit:512M
max_file_uploads: 100
post_max_size: 512M
最大执行时间:600
上传最大文件大小:512M
图片上传代码
manager.upload(.POST, CustomizedEP,
multipartFormData: multipartFormData in
if let imageData = UIImageJPEGRepresentation(profilePic, 1)
multipartFormData.appendBodyPart(data: imageData, name: "temp_pic", fileName: imageName, mimeType: "image/png")
for (key, value) in ["image_name": imageName]
multipartFormData.appendBodyPart(data: value.dataUsingEncoding(NSUTF8StringEncoding)!, name: key as! String)
,
encodingCompletion: encodingResult in
switch encodingResult
case .Success(let upload, _, _):
upload.responseJSON response in
if let data = response.result.value
self.delegate.addPicToPostResponse!(data, Status: (response.response?.statusCode)!);
hideLoader(LoaderType.Default);
upload.progress _, totalBytesRead, totalBytesExpectedToRead in
//let progress = Float(totalBytesRead)/Float(totalBytesExpectedToRead);
//self.delegate.uploadTempPicProgressInfo!(progress, index: index, request: upload.request!); //Removed index so we are not using it
case .Failure(let encodingError):
print(encodingError)
hideLoader(LoaderType.Default);
);
我们正在上传 iPhone5 拍摄的图片
【问题讨论】:
请向我们展示您的代码和测试期间上传的图片。 @RobertColumbia 添加代码请检查 【参考方案1】:That's how
但是,您可以升级您的服务器配置,了解 CPU/内存/数据中心地理位置和互联网连接带宽
【讨论】:
我不想要像 facebook 这样的确切响应能力,我想知道他们如何在不丢失应用响应能力的情况下上传多张图片的逻辑或架构以上是关于将多张图片作为 Facebook 快速上传到服务器 iOS的主要内容,如果未能解决你的问题,请参考以下文章
Facebook 应用程序:在一篇文章中将多张图片上传到墙上
使用 iOS SDK 将多张照片作为单个帖子上传,例如时间线照片,而不是 Facebook 中的相册