【问题标题】:Upload multiple pictures to server iOS Fastly as Facebook将多张图片作为 Facebook 快速上传到服务器 iOS
【发布时间】: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 添加代码请检查

标签: php ios iphone performance image-uploading


【解决方案1】:

That's how

但是,您可以升级您的服务器配置,了解 CPU/内存/数据中心地理位置和互联网连接带宽

【讨论】:

  • 我不想要像 facebook 这样的确切响应能力,我想知道他们如何在不丢失应用响应能力的情况下上传多张图片的逻辑或架构
猜你喜欢
  • 1970-01-01
  • 2018-06-13
  • 1970-01-01
  • 2013-01-12
  • 2018-05-21
  • 2017-10-25
  • 2019-03-07
  • 2017-05-20
  • 1970-01-01
相关资源
最近更新 更多