代码之家  ›  专栏  ›  技术社区  ›  Dinesh Kaushik

AFNetworking文件上载失败

  •  3
  • Dinesh Kaushik  · 技术社区  · 10 年前

    嗨,我正在使用以下代码在服务器上上传图像

    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。

    2 回复  |  直到 10 年前
        1
  •  4
  •   xphobia    10 年前
     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);
    }];
    

    它对我有用。我希望它有帮助

        2
  •  0
  •   Varun Naharia David van Driessche    9 年前

    此错误来自我们使用HTTP代码发送数据的API,因此请在API代码中说明,如果他们正在发送数据,则HTTP代码应始终为200