IOS开发从手机相册中上传头像到APP的个人中心同时保存到数据库

(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");
      }
    }



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值