2017-08-25 3 views
0

J'ai un problème vraiment étrange avec le téléchargement de l'image AFNetworking. Le fichier est correctement téléchargé, et je peux voir qu'il a été téléchargé sur mon serveur. Lorsque je télécharge le fichier et l'ouvre sur mac, l'image s'affiche correctement.L'image ne s'affiche pas sur le navigateur après le téléchargement avec AFNetworking

Toutefois, cette même image ne s'affiche pas sur le navigateur. C'est en quelque sorte que le fichier est corrompu pour ne pas fonctionner uniquement sur les navigateurs. Ceci est le link à l'image. Si vous essayez d'ouvrir dans un navigateur, il affichera un écran vide.

Des idées pour lesquelles cela se passe? J'ai passé des heures aujourd'hui pour le comprendre mais sans succès. J'ai essayé de télécharger PDF et cela a bien fonctionné.

Voici mon code:

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]; 

Répondre

0

L'en-tête de votre lien contiennent de réponse Content-Type: application/octet-stream - cela devrait être Content-Type: image/png à la place.

+0

Salut, merci pour la réponse. Je ne pense pas que ce soit le problème si ... parce que cette image: https://ashore-testing.s3.amazonaws.com/uploaded/deliverable97/version1/Artboard.png a également un type de contenu octet-flux, mais montre dans le navigateur. Il est étrange cependant, quand j'essaye curl -I la longueur originale ininterrompue de contenu d'image est 7838 tandis que le cassé est 4629. –

+0

Il semble qu'il y ait quelque chose de mal avec mon code AFNetworking dans Obj-C. J'ai essayé de télécharger en utilisant PHP (avec multipart/formdata) mais l'image ne se casse pas comme ça –