AFNetworking文件上传失败

时间:2014-09-05 09:17:48

标签: ios objective-c ios7 file-upload afnetworking

您好我正在使用以下代码在服务器上上传图片

AFHTTPRequestSerializer *serializer = [AFHTTPRequestSerializer serializer];

    NSMutableURLRequest *request =
    [serializer multipartFormRequestWithMethod:@"POST" URLString:@"http://test.com/upload_test/" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
        [formData appendPartWithFileData:dataToPost
                                    name:@"attachment"
                                fileName:@"myimage.png"
                                mimeType:@"image/png"];
    } error:nil];


    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    AFHTTPRequestOperation *operation =
    [manager HTTPRequestOperationWithRequest:request
                                     success:^(AFHTTPRequestOperation *operation, id responseObject) {
                                         NSLog(@"Success %@", responseObject);
                                     } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                                         NSLog(@"Failure %@", error.description);
                                     }];


    [operation setUploadProgressBlock:^(NSUInteger __unused bytesWritten,
                                        long long totalBytesWritten,
                                        long long totalBytesExpectedToWrite) {
        NSLog(@"Wrote %lld/%lld", totalBytesWritten, totalBytesExpectedToWrite);
    }];


    [operation start];

我收到以下错误

Failure Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: not found (404)" UserInfo=0xc0428a0 {com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0xaa389e0> { URL: http://test.com/upload_test/ } { status code: 404, headers {
    Connection = "Keep-Alive";
    "Content-Length" = 210;
    "Content-Type" = "text/html; charset=iso-8859-1";
    Date = "Fri, 05 Sep 2014 07:32:49 GMT";
    "Keep-Alive" = "timeout=5, max=100";
    Server = "Apache/2.2.15 (Win32) PHP/5.3.5";
} }, NSErrorFailingURLKey=http://test.com/upload_test/, NSLocalizedDescription=Request failed: not found (404)

我已尝试过另一台服务器,控制权已达到成功阻止但没有文件上传到服务器。

文件上传需要哪些服务器配置或权限?

我正在使用iOS 7。

1 个答案:

答案 0 :(得分:4)

 AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"Your server base url"]];
 NSData *imageData = UIImagePNGRepresentation(image);
[manager POST:@"url to upload image" parameters:@"parameter required by the server" constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    [formData appendPartWithFileData:imageData name:@"file" fileName:@"image.png" mimeType:@"image/png"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"Success %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Failure %@, %@", error, operation.responseString);
}];

它为我工作。我希望它有所帮助