2013-03-25 2 views
0

я должен загрузить ZIP-файл на сервер, я использую этот код:IOS: Загрузка ZIP-файл с AFNetworking

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 прекрасно. Запрос в порядке. Но ответ сервера показывает, что файл был поврежден на своем пути. Вместо 931 байт сервер получает только файл размером 855 байтов.

Администратор сервера сказал мне (IOS нет опыта), что я должен установить правильный тип загрузки (например, в HTML дело будет):

enctype="multipart/form-data" 
+0

http://stackoverflow.com/questions/8234186/afnetworking-uploading-a-file – iPatel

ответ

1

Вы не должны закрывать ручку на молнии файл перед попыткой прикрепить его к запросу? Вы не можете быть уверены, что это полностью записано на хранение, так что вы можете получить такое поведение.

[zip1 CloseZipFile2]; 
+0

Вот оно, спасибо. –

Смежные вопросы