2017-05-09 1 views
1

、 {pic_image:ファイルアタッシュケース pic_user_id:1 pic_name:abcd.jpg 他のテキストパラメタを含むイメージを辞書からアップロードするには?私はこのようになり辞書から画像をアップロードする

}添付ファイルIからアップロードしたい画像である

イメージビュー、どのようにこれを達成するために?あなたが画像を取得することができ、このコードによって

NSString *imageName = myDictioanry[@"pic_name"]; 

-(void)uploadImageWithparams:(NSDictionary *)params withDelegate:(id)delegateObject withHandler:(HMResponseBlock)block{ 
    // This isn't actually my url btw 
    // setting up the request object now 
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init]; 

    [request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@,%@",kBaseUrl,@"page=user"]]]; 
    [request setHTTPMethod:@"POST"]; 


    NSMutableArray *parameters = [[NSMutableArray alloc] init]; 
    for (NSString *key in params.allKeys) { 
     if([key rangeOfString:@"pic_image"].location != NSNotFound){ 
      [parameters addObject:@{@"fileName": key, @"value": params[key]}]; 
     }else { 
      [parameters addObject:@{@"name": key, @"value": params[key]}]; 
     } 
    } 
    NSLog(@"The parameters are %@",parameters); 
    NSString *boundary = @"---------------------------14737809831466499882746641449"; 
     NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary]; 
    [request addValue:contentType forHTTPHeaderField: @"Content-Type"]; 
    NSError *error; 
    NSMutableData *body = [NSMutableData data]; 
    for (NSDictionary *param in parameters) { 
     if (param[@"fileName"]) { 

      [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
      [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"photo\"; filename=\"%@\"\r\n", @"abcd"] dataUsingEncoding:NSUTF8StringEncoding]]; 
      [body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
      [body appendData:param[@"value"]]; 
      [body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 


     }else { 
      [body appendData:[[NSString stringWithFormat:@"--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
      [body appendData:[[NSString stringWithFormat:@"Content-Disposition:form-data; name=\"%@\"\r\n\r\n", param[@"name"]] dataUsingEncoding:NSUTF8StringEncoding]]; 
      [body appendData:[[NSString stringWithFormat:@"%@\r\n", param[@"value"]] dataUsingEncoding:NSUTF8StringEncoding]]; 


     } 
    } 
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [request setHTTPBody:body]; 
    NSURLSession *session = [NSURLSession sharedSession]; 
    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request 
               completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 
                if (error) { 
                 NSLog(@"%@", error); 
                } else { 
                 NSDictionary *json = nil; 
                 NSError *err; 
                 if(data){ 
                  json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers|NSJSONReadingAllowFragments error:&err]; 
                 } 
                 block(json,err); 
                } 
               }]; 
    [dataTask resume]; 

} 
+0

私は述べた環境を開発、あなたが本当に無い言語ので、やりたいことされているものを知りません。いくつかのJSONプロトコルのように見えるので、pic_imageはネットワーク上のBase64エンコーディングによってASCII文字に変換できます。第二に、あなたが言及したイメージビューを考慮すると、どの言語とフレームワークを使用していますか? – tommybee

+0

そのマルチパート送信データはこのansを参照してください、あなたのために使用することができます..http://stackoverflow.com/questions/24250475/post-multipart-form-data-with-objective-c – vaibhav

答えて

1

元のキー名で辞書から画像名を取得し、辞書内にある画像をアップロードする

この私の機能辞書からの名前

UIImage *image = [UIImage imageNamed:imageName]; 

あなたは上記のコード

をすることにより、画像名から画像を得ることができるか、他あなたはImageViewのから画像を取得し、サーバーへのアップロードのイメージのためのコードをしたい場合は、以下のコード

UIImage *image = myImageView.image; 

でのNSDataに変換することができ、これをクリックしてくださいリンク

imageUploadLink

+0

ありがとうリンク –

+0

それは私のために働いていない –

関連する問題