iOS:使用 AFNetworking 上传 ZIP 文件

标签 ios nsurlconnection afnetworking

我必须将 ZIP 文件上传到服务器,我正在使用以下代码:

NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:methode parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) {

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *databasePath = [documentsDirectory stringByAppendingPathComponent:@"data.xml"];

        ZipArchive  *zip1 = [[ZipArchive alloc] init];
        BOOL ret = [zip1 CreateZipFile2:[documentsDirectory stringByAppendingPathComponent:@"data.zip"]];

        ret = [zip1 addFileToZip:databasePath newname:@"data.xml"];

        [formData appendPartWithFileData:[NSData dataWithContentsOfFile:[documentsDirectory stringByAppendingPathComponent:@"data.zip"]]
                                    name:@"FILE"
                                fileName:@"data.zip"
                                mimeType:@"application/zip"];
    }];

    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
 [operation start];

ZIP 文件没问题。要求没问题。但服务器响应显示文件在传输过程中已损坏。服务器只收到 855 字节的 ZIP 文件,而不是 931 字节。

服务器管理员告诉我(没有 iOS 经验),我必须设置正确的上传类型(就像 HTML 中的情况一样):

enctype="multipart/form-data"

最佳答案

在尝试将 zip 文件附加到请求之前,您是否应该关闭该文件的句柄?否则,您无法确定它是否已完全写入存储,因此您可能会遇到此行为。

[zip1 CloseZipFile2];

关于iOS:使用 AFNetworking 上传 ZIP 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15618011/

相关文章:

ios - xcode5-按下按钮后播放声音不起作用

ios - iPhone 相机控件未对齐

iphone - ExclusiveTouch的属性会影响 subview 吗?

ios - WiFi 热点 403 错误

ios - 确定通过 NSURLConnection 收到的消息是否完整?

ios - 使用iOS中的AFNetworking,确定故障响应是服务器错误还是连接错误的最佳方法是什么?

ios - 参数在 SOAP 服务中传递 NULL 值

ios - iOS 9 上的 NSURLConnection 不使用 HTTP/2 协议(protocol)

ios - 在 swift 3.2 中使用 json 和 header 请求 AFNetworking

iphone - 将当前位置从 iPhone 发布到 Rails