iOS上传图片
這里的圖片上傳用的是下面這個方法 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
??? manager.responseSerializer = [AFHTTPResponseSerializer serializer];
???
??? [manager POST:@"http://www.xxx.com" parameters:para constructingBodyWithBlock:^(id<AFMultipartFormData>? _Nonnull formData) {
???????
??????? int i = 0;
??????? //根據當前系統時間生成圖片名稱
??????? NSDate *date = [NSDate date];
??????? NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
??????? [formatter setDateFormat:@"yyyy年MM月dd日"];
??????? NSString *dateString = [formatter stringFromDate:date];
???????
??????? for (UIImage *image in images) {
??????????? NSString *fileName = [NSString stringWithFormat:@"%@%d.png",dateString,i];
??????????? NSData *imageData;
??????????? imageData = UIImagePNGRepresentation(image);
??????????? if (!imageData) { imageData = UIImageJPEGRepresentation(image, 1.0f); } //這里要注意”name”里面的寫法”photo”和”photo[]”。一張和多張的區別 [formData appendPartWithFileData:imageData name:@"photo[]" fileName:fileName mimeType:@"image/jpg/png/jpeg"];
??????????? i ++;
??????? }
???????
??? } progress:^(NSProgress * _Nonnull uploadProgress) {
??????? JDLog(@"%@",uploadProgress);
??? } success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable responseObject) {
??????? NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
??????? JDLog(@"%@", dict);
???????
??? } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
??????? }]; 這里要注意的是,上傳一張圖片和上傳多張圖片的區別,上傳一張圖片,圖片的"name”里面是一個”photo”,而上傳多張圖片的時候,”name”里面的是一個數組,所以,里面要做一個小改動,要將里面的”photo”,后面加上一個中括號,”photo[ ]”,這樣子,后臺收到的圖片就是一個數組,不是只有一張圖片,如果是沒有中括號,最后上傳上去的圖片是最后一張能收到。
??? manager.responseSerializer = [AFHTTPResponseSerializer serializer];
???
??? [manager POST:@"http://www.xxx.com" parameters:para constructingBodyWithBlock:^(id<AFMultipartFormData>? _Nonnull formData) {
???????
??????? int i = 0;
??????? //根據當前系統時間生成圖片名稱
??????? NSDate *date = [NSDate date];
??????? NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
??????? [formatter setDateFormat:@"yyyy年MM月dd日"];
??????? NSString *dateString = [formatter stringFromDate:date];
???????
??????? for (UIImage *image in images) {
??????????? NSString *fileName = [NSString stringWithFormat:@"%@%d.png",dateString,i];
??????????? NSData *imageData;
??????????? imageData = UIImagePNGRepresentation(image);
??????????? if (!imageData) { imageData = UIImageJPEGRepresentation(image, 1.0f); } //這里要注意”name”里面的寫法”photo”和”photo[]”。一張和多張的區別 [formData appendPartWithFileData:imageData name:@"photo[]" fileName:fileName mimeType:@"image/jpg/png/jpeg"];
??????????? i ++;
??????? }
???????
??? } progress:^(NSProgress * _Nonnull uploadProgress) {
??????? JDLog(@"%@",uploadProgress);
??? } success:^(NSURLSessionDataTask * _Nonnull task, id? _Nullable responseObject) {
??????? NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
??????? JDLog(@"%@", dict);
???????
??? } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
??????? }]; 這里要注意的是,上傳一張圖片和上傳多張圖片的區別,上傳一張圖片,圖片的"name”里面是一個”photo”,而上傳多張圖片的時候,”name”里面的是一個數組,所以,里面要做一個小改動,要將里面的”photo”,后面加上一個中括號,”photo[ ]”,這樣子,后臺收到的圖片就是一個數組,不是只有一張圖片,如果是沒有中括號,最后上傳上去的圖片是最后一張能收到。
轉載于:https://www.cnblogs.com/viskyly/p/7602433.html
總結
- 上一篇: ubuntu 上 安装php5.4
- 下一篇: 2016 ICPC 北京