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

        在程序开发中,经常会遇到上传图片的问题,那么,下面的一段代码可以帮助你将图片上传至服务器(本篇代码用的服务器是新浪云的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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值