2016-07-13 15 views
0

AFNetworking 3.0を使用してイメージを自分のサーバーにアップロードしようとしています。私のサーバーは "アップロードするファイルを選択してください"と返します。ここで私のPHPファイル$filename = $_FILES["file"]["name"];のアップロードされたファイルをキャッチする方法です。AFNetworking 3.0のアップロードイメージ

-(void)uplodeImages :(NSString *)image { 
    NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://local/upload.php" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
     [formData appendPartWithFileURL:[NSURL fileURLWithPath:image] name:@"file" fileName:@"imagename.jpg" mimeType:@"image/jpeg" error:nil]; 
    } error:nil]; 

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

    NSURLSessionUploadTask *uploadTask; 
    uploadTask = [manager uploadTaskWithStreamedRequest:request progress:^(NSProgress * _Nonnull uploadProgress) { 
         dispatch_async(dispatch_get_main_queue(), ^{ 
          NSLog(@"Laddar..."); 
         }); 
        } completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) { 
         if (error) { 
          NSLog(@"Error: %@", error); 
         } else { 
          NSLog(@"%@ %@", response, responseObject); 
         } 
        }]; 
    [uploadTask resume]; 
} 
+0

"ファイル"の名前を変更してください。 –

答えて

1

は: - 私はちょうどAFNetworking 3.0、

を用いた画像のアップロードサービスを実施している - > serviceNameのサービスの名前を意味します - >ここでkBaseURLは

は、サーバーのベースURLを意味します。

- > dictParamsは、必要に応じてパラメータを与えることを意味し、そうでない場合はnilを意味します。

- >画像とは画像を渡すことを意味します。

注:このコードはNSObjectクラスで書かれており、私たちのプロジェクトには適用されています。

+ (void)requestPostUrlWithImage: (NSString *)serviceName parameters:(NSDictionary *)dictParams image:(UIImage *)image success:(void (^)(NSDictionary *responce))success failure:(void (^)(NSError *error))failure { 

NSString *strService = [NSString stringWithFormat:@"%@%@",kBaseURL,serviceName]; 
[SVProgressHUD show]; 

NSData *fileData = image?UIImageJPEGRepresentation(image, 0.5):nil; 

NSError *error; 
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:strService parameters:dictParams constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 

    if(fileData){ 
     [formData appendPartWithFileData:fileData 
            name:@"image" 
           fileName:@"img.jpeg" 
           mimeType:@"multipart/form-data"]; 
    } 
} error:&error]; 

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

NSURLSessionUploadTask *uploadTask; 
uploadTask = [manager uploadTaskWithStreamedRequest:request progress:^(NSProgress * _Nonnull uploadProgress) { 

    NSLog(@"Wrote %f", uploadProgress.fractionCompleted); 
} 
            completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) { 
             [SVProgressHUD dismiss]; 
             if (error) 
             { 
              failure(error); 
             } 
             else 
             { 
              NSLog(@"POST Response : %@",responseObject); 
              success(responseObject); 

             } 
            }]; 

[uploadTask resume]; 

} 

- >今すぐプロジェクトに適用されます。

UIImage *imgProfile = //Pass your image.   


    [WebService requestPostUrlWithImage:@"save-family-member" parameters:nil image:imgProfile success:^(NSDictionary *responce) { 

     NSString *check = [NSString stringWithFormat:@"%@",[responce objectForKey:@"status"]]; 
     if ([check isEqualToString: @"1"]) { 
      //Image Uploaded. 
     } 
     else 
     { 
     //Failed to Upload. 
     } 


    } failure:^(NSError *error) { 
     //Error 
    }]; 
関連する問題