ios - 使用 AFNetworking 2.0 从 iOS 应用程序以流的形式上传 100 张图像

标签 ios xcode ios8 image-uploading afnetworking-2

我想发送最大值。向我的服务器发出的单个请求中包含 100 张图像。简单的图片上传对我来说很好。

但我想用 AFNetworking 2.0 api 创建一个数据流。所以,我想问我如何用我的图像数据创建一个新的网络流。

此外,此流还应该在应用程序的后台模式下工作,并且图像应该在应用程序的后台模式下上传到服务器上。如何使用 AFNetworking 2.0 库来实现这一点?

任何建议都会有所帮助。

最佳答案

我认为这不是一个好主意,但我会回答你的问题,让你自己决定。

AFAIK 只有两种方法可以通过单个请求发送 100 张图像:

  • 将它们绑定(bind)在一个文件中,例如 zip 它们
  • 使用 multipart/form-data

  • 第一种方法很明显:) 让我们谈谈第二种方法。

    使用 AFNetworking 创建多部分请求:
    NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer]
                                        multipartFormRequestWithMethod:@"POST"
                                        URLString:[url absoluteString]
                                        parameters:nil
                                        constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
                                        {
                                            for (NSURL *imageUrl in imageURLsArray)
                                                [formData appendPartWithFileURL:imageUrl name:[imageUrl lastPathComponent] error:nil];
                                        }
                                        error:nil];
    

    将请求正文保存到文件,因为后台上传仅支持文件,不支持内存中的流或数据:
    NSURL *fileURL = create url for a temporary file
    [[AFHTTPRequestSerializer serializer] 
        requestWithMultipartFormRequest:request
        writingStreamContentsToFile:fileURL
        completionHandler:(void (^)(NSError *error))
        {
            NSMutableURLRequest *newRequest = [request mutableCopy];
            newRequest.HTTPBodyStream = nil;
            // Here you can start background uploading of file fileURL using newRequest request
    
    }];
    

    如何在后台上传文件,例如 AFNetworking 2.0 and background transfers或这里 http://www.objc.io/issue-5/multitasking.html

    关于ios - 使用 AFNetworking 2.0 从 iOS 应用程序以流的形式上传 100 张图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29604438/

    相关文章:

    iOS:将图像按钮的值传递给类中函数的好方法

    ios - SDWebImage 不适用于 iOS 8

    ios - 动态更改 Today Widget 的标题?

    objective-c - 添加额外的 UIImage 到 TTPhotoViewController

    xcode - Xcode Instruments 中的类别图标

    ios - 使用 nib 中的 View 重新加载 UIView 属性

    ios - 在 Swift 中,我如何将永久变量从主 iOS 应用程序传递到扩展程序(例如今天的扩展程序、自定义键盘)

    uiwebview - 在 iOS 8 上共享 NSURLCache 和 UIWebView

    ios - 我的数组的 IndexPath 有问题吗? swift 4 火力基地

    c# - 是否可以在 MonoTouch 中对 UILabel 的文本使用 getter/setter?