(1)客户端
1、首先有一个imagePickerView的代理:
<UIImagePickerControllerDelegate>
还有记得在相应的位置写上设置代理对象:imagePickerController.delegate = self;
2、在这个代理中有一个方法,是选择相片结束后自动调用的方法:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
//获取图像信息
UIImage *image = info[UIImagePickerControllerOriginalImage];
//显示头像
self.headerImageView.image = image;
[picker dismissViewControllerAnimated:YES completion:nil];
//上传头像到服务器
[self sendRequestHeaderImage];
}
3、发送数据库请求,上传头像
-(void)sendRequestHeaderImage{
NSString *URL = KHTTPUploadHeaderImage;
NSDictionary *parameter = @{
@"user_id":@(APPDELEGATE.user.user_id)
};
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html",@"application/json",@"text/json",@"text/javascript", nil];
[manager POST:URL parameters:parameter constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
UIImage *image = self.headerImageView.image;
NSString *fileName = [NSString stringWithFormat:@"X.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1);
[formData appendPartWithFileData:data name:@"X" fileName:fileName mimeType:@"image/png"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"上传成功");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"上传失败");
NSLog(@"%@",error);
}];
(2)服务器端
####
#### 上传头像
####
public function uploadHeaderImage()
{
$user = M("t_user");
$user_id = $_POST["user_id"];
$config = array(
'maxSize' => 1024*1024,
'rootPath' => './Home/',//根目录
'savePath' => 'images/Header/',//图片文件夹目录
'autoSub' => true,
'saveName' => array('uniqid','is'),//默认的命名规则设置是采用uniqid函数生成一个唯一的字符串序列,is为图片名前缀
'exts' => array('jpg','gif','png','jpeg'),
'autoSub' => false,
'subName' =>array('date','Ymd'),
);
$upload = new\Think\Upload($config);// 实例化上传类
$info = $upload -> upload();
foreach ($info as $key => $value) {
//获取保存图片的名称$value['savename']
$date["user_head_image"] = $value['savename'];
}
$dataSave["user_head_image"] = $date["user_head_image"];
$User_id_condition["user_id"] = $user_id;
$user->where($User_id_condition)->save($dataSave);
if ($info) {
$this -> ajaxReturn(array("code" => "200","message" => "var_dump($info)"),"JSON");
}
else{
$this -> ajaxReturn(array("code" => "500","message" => "$upload -> getError()"),"JSON");
}
}