Ios 如何将相位集(图像)上载到服务器
我尝试将多个图像上传到服务器,我使用QBImagePickerController拾取图像并上传到服务器。但是我在从服务器检索图像时没有获得正确的图像。如何将图像上载到服务器Ios 如何将相位集(图像)上载到服务器,ios,objective-c,cocoa-touch,uiimageview,phasset,Ios,Objective C,Cocoa Touch,Uiimageview,Phasset,我尝试将多个图像上传到服务器,我使用QBImagePickerController拾取图像并上传到服务器。但是我在从服务器检索图像时没有获得正确的图像。如何将图像上载到服务器 {- (void)qb_imagePickerController:(QBImagePickerController *)imagePickerController didFinishPickingAssets:(NSArray *)assets { self.imagesKeysArray = [NSMutableAr
{- (void)qb_imagePickerController:(QBImagePickerController *)imagePickerController didFinishPickingAssets:(NSArray *)assets {
self.imagesKeysArray = [NSMutableArray new];
for (PHAsset *asset in assets) {
// Do something with the asset
NSDictionary *headers = @{ @"content-type": @"multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
@"p-auth-token": @"afc1577772eb73c910a4e180290f" };
NSArray *resources = [PHAssetResource assetResourcesForAsset:asset];
NSString *orgFilename = ((PHAssetResource*)resources[0]).originalFilename;
NSArray *parameters = @[ @{ @"name": @"file[]", @"fileName": orgFilename } ];
NSString *boundary = @"----WebKitFormBoundary7MA4YWxkTrZu0gW";
NSError *error;
NSMutableString *body = [NSMutableString string];
for (NSDictionary *param in parameters) {
[body appendFormat:@"--%@\r\n", boundary];
if (param[@"fileName"]) {
[body appendFormat:@"Content-Disposition:form-data; name=\"%@\"; filename=\"%@\"\r\n", param[@"name"], param[@"fileName"]];
[body appendFormat:@"Content-Type: %@\r\n\r\n", param[@"contentType"]];
[body appendFormat:@"%@", [NSString stringWithContentsOfFile:param[@"fileName"] encoding:NSUTF8StringEncoding error:&error]];
if (error) {
NSLog(@"%@", error);
}
} else {
[body appendFormat:@"Content-Disposition:form-data; name=\"%@\"\r\n\r\n", param[@"name"]];
[body appendFormat:@"%@", param[@"value"]];
}
}
[body appendFormat:@"\r\n--%@--\r\n", boundary];
NSData *postData = [body dataUsingEncoding:NSUTF8StringEncoding];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://frica.com/facilitator/server/v1/media"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"POST"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSDictionary *serverDatadict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSString *keys = [[[[serverDatadict valueForKey:@"result"]objectForKey:@"file1"]objectForKey:@"result"]valueForKey:@"key"];
[self.imagesKeysArray addObject:keys];
NSLog(@"Pic keys %@", self.imagesKeysArray);
}
}];
[dataTask resume];
}
[self dismissViewControllerAnimated:YES completion:NULL];
}
}
我想你需要先将它转换成一个
NSData
,然后从服务器获取数据时,你需要下载它,然后将数据转换成NSData
,然后再转换成一个PHAsset
@Zonily Jame我正在获取上传到服务器的图像url,但我没有得到仅包含图像文件的图像。什么类型的你从服务器上获取url吗?@Zonily Jame在上面的代码中将图像发布到服务器后,我在didFinishPickingAssets方法中编写了什么,我获得了该图像的图像密钥,然后我需要将该图像密钥发送到服务器。从服务器检索图像时,它是这样的,但此url不显示图像。是否可能发送到服务器的不是图像数据?但只是一个随机文件,文件名为,扩展名为.jpeg