Ios 如何从包含其他文本参数的字典上载图像?
我想上传一张字典里的图片,看起来像这样, { 图片:档案管理员 图片用户id:1 图片名称:abcd.jpg } 附加文件的位置是我想从图像视图上传的图像,如何实现这一点 这是我上传字典中图像的功能Ios 如何从包含其他文本参数的字典上载图像?,ios,objective-c,Ios,Objective C,我想上传一张字典里的图片,看起来像这样, { 图片:档案管理员 图片用户id:1 图片名称:abcd.jpg } 附加文件的位置是我想从图像视图上传的图像,如何实现这一点 这是我上传字典中图像的功能 -(void)uploadImageWithparams:(NSDictionary *)params withDelegate:(id)delegateObject withHandler:(HMResponseBlock)block{ // This isn't actually my
-(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];
}
按关键字名称从字典中获取图像名称 例: 通过此代码,您可以从字典中获取图像名称
UIImage *image = [UIImage imageNamed:imageName];
您可以通过上述代码从图像名称中获取图像
或者,您可以从imageView获取图像,并通过下面的代码将其转换为NSData
UIImage *image = myImageView.image;
如果您需要将图像上载到服务器的代码,请单击此链接
我不知道您真正想做什么,因为没有提到语言,没有开发环境。它看起来像某种JSON协议,因此PICU图像可以通过网络上的Base64编码转换为ASCII字符。第二,考虑到你提到的图像视图,你使用什么语言和框架?它的多部分发送数据看到这个ans,可以为你使用..谢谢,我将尝试链接中的一个
UIImage *image = myImageView.image;