利用UIImagePickerController 从相册中获取一张图片上传到预先设定得服务器中
注意点:
>1. 服务器的文件夹必须是所有人可写的 否则会上传失败
#import "ViewController.h"
#import "NSMutableURLRequest+MultiPartFormData.h"
@interface ViewController ()<UINavigationControllerDelegate , UIImagePickerControllerDelegate]] >
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@end
@implementation ViewController
- (IBAction)selectPic:(id)sender {
[self openPhotoLibrary];
}
- (IBAction)upPic:(id)sender {
[self upImage];
}
#pragma mark - 打开相册选取图片
- (void)openPhotoLibrary
{
UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
ipc.delegate = self;
[self presentViewController:ipc animated:YES completion:nil];
}
#pragma mark - 图片选择控制器的代理
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
// 1.销毁picker控制器
[picker dismissViewControllerAnimated:YES completion:nil];
// 2.获取图片
UIImage *image = info[UIImagePickerControllerOriginalImage];
self.imageView.image = image;
}
#pragma mark - 上传图片
- (void)upImage
{
// 1. url 负责上传文件的脚本
NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/post/upload.php"];
// 2. request
/**
url : 负责上传文件的脚本的url
uploadFileName: 保存到服务器上的文件名
localFile: 本地要上传文件的Data
*/
NSDate *date = [NSDate date];
NSDateFormatter *formater = [[NSDateFormatter alloc] init];
formater.dateFormat = @"yyyyMMddhhmmss";
NSString *filmame = [formater stringFromDate:date];
filmame = [NSString stringWithFormat:@"%@.png",filmame];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithUploadURL:url uploadFileName:filmame localFile:UIImageJPEGRepresentation(self.imageView.image, 1.0)];
// 3. session
[[[NSURLSession sharedSession] dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
NSLog(@"%@", dict);
}] resume];
}
@end