iOS에서 여러 개의 이미지와 글을 서버에 업로드
/**
@param imagesArray
@param url ,
@param filename ( )
@param name
@param params
@param progress
@param responseStyle
@param success
@param fail
*/
+ (void)moreLoadWithImage:(NSMutableArray *)imagesArray
url:(NSString *)url
filename:(NSString *)filename
name:(NSString *)name
params:(NSDictionary *)params
progress:(upLoadProgress)progress
andResponse:(JYJResponseStyle)responseStyle
success:(successBlock)success
fail:(failureBlock)fail;
.m중
+(void)moreLoadWithImage:(NSMutableArray *)imagesArray url:(NSString *)url filename:(NSString *)filename name:(NSString *)name params:(NSDictionary *)params progress:(upLoadProgress)progress andResponse:(JYJResponseStyle)responseStyle success:(successBlock)success fail:(failureBlock)fail {
[[AFNetworkReachabilityManager sharedManager] startMonitoring];
// ,
[[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
NSLog(@" = %ld", status);
}];
// 1.
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
// 3.
switch (responseStyle) {
case JYJJSON:
manager.responseSerializer = [AFJSONResponseSerializer serializer];
break;
case JYJXML:
manager.responseSerializer = [AFXMLParserResponseSerializer serializer];
break;
case JYJDATA:
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
break;
default:
break;
}
// 4.
[manager.responseSerializer setAcceptableContentTypes:[NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",@"text/css",@"text/plain", @"application/javascript",@"image/jpeg", @"text/vnd.wap.wml", @"application/x-javascript",@"image/png", nil]];
// 5. UTF-8
url = [url stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
[manager POST:url parameters:params constructingBodyWithBlock:^(id _Nonnull formData) {
for (NSInteger i = 0; i < imagesArray.count; i ++) {
//
NSData *imageData = UIImageJPEGRepresentation(imagesArray[i], 0.5);
NSString *imageFileName =filename;
if (filename == nil || [filename isKindOfClass:[NSString class]] || filename.length == 0) {
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
formatter.dateFormat = @"yyyy-MM-dd-HH-mm-ss";
NSString *str = [formatter stringFromDate:[NSDate date]];
imageFileName = [NSString stringWithFormat:@"%@.jpg",str];//
}
// ,
[formData appendPartWithFileData:imageData name:name fileName:imageFileName mimeType:@"image/jpeg"];
}
} progress:^(NSProgress * _Nonnull uploadProgress) {
NSLog(@" --%lld, --%lld",uploadProgress.completedUnitCount,uploadProgress.totalUnitCount);
if (progress) {
progress(uploadProgress.completedUnitCount,uploadProgress.totalUnitCount);
}
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@" -%@",responseObject);
if (success) {
success(responseObject);
}
} failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"error=%@",error);
if (fail) {
fail(error);
}
}];
}
각종 매개 변수는 이미 매우 분명하게 썼다.어느 곳에서 직접 사용하면 됩니다.내가 봉한 네트워크 클래스 이름(JYJ NetWorkParser)//다시 한 번 말해봐. 첫 번째 파라미터: 그림 그룹 두 번째 파라미터: 백엔드에서 주는 인터페이스 세 번째 파라미터: 아무 이름이나 지어. 네 번째 파라미터: 백엔드에서 주는 한 필드(백엔드와 일치) 다섯 번째 파라미터: 파라미터(문자 설명 가능)여섯 번째 파라미터: 업로드 진도 일곱 번째 파라미터: 요청 데이터의 형식 여덟 번째 아홉 번째: 요청 성공, 실패 반환 데이터
[JYJNetWorkParser moreLoadWithImage:self.imageArray url:kPostMessageURL filename:@"myImages" name:@"files" params:dic progress:nil andResponse:JYJJSON success:^(id result) {
}fail:^(NSError *error) {
}];
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.