iOS--AFNetWorking 上傳圖片到伺服器

來源:互聯網
上載者:User

標籤:ica   option   響應   nsfile   pre   upload   效果   遍曆   manager   

//filePath 是要上傳到伺服器圖片的路徑,如果是圖片,你可以image對象建立一個,來擷取路徑,比如已知一個UIImage對象image:CGSize size=image.size;NSData *DATA=[self imageWithImage:image scaledToSize:sise];UIImage *image1=[UIImage imageWithData:DATA];              //圖片儲存的路徑   NSString * DocumentsPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];     NSFileManager *fileManager = [NSFileManager defaultManager];     [fileManager createDirectoryAtPath:DocumentsPath withIntermediateDirectories:YES attributes:nil error:nil];     [fileManager createFileAtPath:[DocumentsPath stringByAppendingString:@"/image.png"] contents:DATA attributes:nil];     NSString *filePath = [[NSString alloc]initWithFormat:@"%@%@",DocumentsPath,  @"/image.png"];     [self upload:filePath image:image1];  把方法中的yourURL 改成你自己的就可以用了,因為AFNetWorking 是非同步 所以我將後面分享功能的方法寫在success裡面的  - (void)upload:(NSString*)filePath image:(UIImage*)img{              //表單請求,上傳檔案       AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];       manager.requestSerializer = [AFJSONRequestSerializer serializer];//請求       manager.responseSerializer = [AFHTTPResponseSerializer serializer];//響應       manager.requestSerializer.timeoutInterval = 20;       [manager.responseSerializer setAcceptableContentTypes:[NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"textml",@"text/css",@"text/plain", @"application/javascript",@"application/json", @"application/x-www-form-urlencoded", nil]];     /*      *這裡需要特別注意一下,因為沒有放具體的上傳地址,所以這個上傳方式是不成功的,但是方法是沒錯的,需要替換成正確的上傳地址      */       NSDictionary *param=[NSDictionary dictionaryWithObjectsAndKeys:@"picture",@"paramName",filePath,@"file",nil];       [manager POST:@"yourURL" parameters:param constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData)   {         //將圖片以表單形式上傳             NSData *data1=[NSData dataWithContentsOfFile:filePath];             NSData *imgData=UIImagePNGRepresentation(img);
      [formData appendPartWithFileData:imgData name:@"picture" fileName:filePath mimeType:@"image/png"];              }    progress:^(NSProgress *uploadProgress){         //進度         NSLog(@"進度%@",uploadProgress);              }    success:^(NSURLSessionDataTask *task, id responseObject)       {                 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];                 NSArray *keys= [dic allKeys];                          //遍曆keys                 for(int i=0;i<[keys count];i++)                 {                         NSString *key=keys[i];                         if([key isEqualToString:@"Data"])                         {                               NSString *url=[dic objectForKey:key];                               url=[NSString stringWithFormat:@"http://123.207.238.220:81%@",url];                               NSLog(@"%@",url);                               [self share:url];                         }                }       
             }     failure:^(NSURLSessionDataTask *task, NSError *error)     {         NSLog(@"%@",[error description]);             NSLog(@"%@",error);         //因為沒有有效地址,所以肯定是上傳失敗的,為了表現出效果,此處也替換為新頭像           }]; }

iOS--AFNetWorking 上傳圖片到伺服器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.