图片上传至数据库(新浪云)的方法

来源:互联网 发布:qq管家抢软件 编辑:程序博客网 时间:2024/06/05 17:43

        在程序开发中,经常会遇到上传图片的问题,那么,下面的一段代码可以帮助你将图片上传至服务器(本篇代码用的服务器是新浪云的SAE,服务器端的代码是用thinkPHP编写,会在后面贴出)。

        直接上代码:

先导入AFN的库和头文件

-(void)savepicture{   NSString *url = imageUrl;    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"application/json"];    [manager POST:url parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {                UIImage *image = [UIImage imageNamed:@"head6.png"];        NSData *imageData = UIImageJPEGRepresentation(image,0.1);//压缩图片 压缩至十分之一        [formData appendPartWithFileData:imageData name:@"user_header_image" fileName:@"image.png" mimeType:@"image/png"];            } success:^(AFHTTPRequestOperation * _Nonnull operation, id  _Nonnull responseObject) {        NSLog(@"%@",responseObject);    } failure:^(AFHTTPRequestOperation * _Nonnull operation, NSError * _Nonnull error) {        NSLog(@"%@",error);            }];}

thinkPHP写保存图片的代码有几种,下面就介绍一种简单常用的:

    // 这个系统自带 框架带的    public function upload() {        // 注意此方法本身就支持多张图片的上传        $upload = new \Think\Upload();        $upload ->maxSize = 0; // 不限制图片的大小        // 错误的原因是没有将附加的格式写入,添加png到数组中即可,让服务器支持        $upload ->exts = array('jpg','gif','jpeg','png', 'zip');        $upload ->rootPath = '.ciellstorage/img/';        $upload ->savePath = 'header/'; //保存在“header”目录下,header目录是已经存在的        $upload->saveName = array('uniqid',''); // 服务器自动生成一个唯一的文件名 算法 SHA-1类似算法唯一文件名        // 取消自动使用子目录保存上传文件        $upload ->autoSub = false;        //$upload->subName = array('date','Ymd');        $info = $upload -> upload();        if(!$info){            $reutnResult['code']= '0';            $reutnResult['message'] =$upload->getError();        }else {            $reutnResult['code']= '1';            $reutnResult['message'] = $info['user_header_image']['url'];            // 取出info里面的保存的图片名称进行进一步操作            // 保存文件名称到数据库中        }        $this ->ajaxReturn($reutnResult);    }

如果有想知道新浪云的使用可以留言。


0 0