使用AFNetworking

时间:2017-08-25 07:07:43

标签: objective-c amazon-s3 afnetworking afnetworking-3

AFNetworking Image上传有一个非常奇怪的问题。文件上传正常,我可以看到它已经上传到我的服务器上。当我下载文件并在Mac上打开它时,图像显示正常。

但是,相同的图像不会在浏览器上显示。以某种方式,该文件已损坏,不能仅在浏览器上运行。

此处为图片link。如果您尝试在任何浏览器中打开,它将显示空白屏幕。

为什么会发生这种情况?我今天花了好几个小时搞清楚,但没有用。我尝试过上传PDF,但效果很好。

这是我的代码:

NSDictionary *params = @{@"deliverable_ID"     : deliverableID,
                         @"name"    : @"Artboard.png",
                         @"type" : @"png",
                         @"description" : @"Some random png file"};

NSString *path = [[NSBundle mainBundle] pathForResource:@"Artboard" ofType:@"png"];

NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:url parameters:params constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {

    [formData appendPartWithFileURL:[NSURL fileURLWithPath:path] name:@"file" fileName:@"Artboard.png" mimeType:@"image/png" error:nil];


} error:nil];
[request setValue:apiToken forHTTPHeaderField:@"Authorization"];

AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

NSURLSessionUploadTask *uploadTask = [manager
                                      uploadTaskWithStreamedRequest:request
                                      progress:nil
                                      completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {
                                          if (error) {

                                              NSString * result = [NSString stringWithFormat:@"Error: %@", error];
                                              [delegate printResult:result];
                                          } else {
                                              NSString * result = [NSString stringWithFormat:@"%@",  responseObject];
                                              [delegate printResult:result];
                                          }
                                      }];

[uploadTask resume];

1 个答案:

答案 0 :(得分:0)

您的链接的回复标题包含Content-Type: application/octet-stream - 这应该是Content-Type: image/png