thinkphp多图片上传(插入数据库,并且不出现覆盖现象)


经过测试,好像在thinkphp手册中saveRule默认值并不是uniqid,而是图片原名称,最好也不要用time,因为可能时间会相同,也就是会重名

这里主要就是 $upload->saveRule = uniqid;这个是改变图片名称的,可同时改变多张图片的名称,实现图片的不同名

 这样也就不会出现覆盖的现象了

    还有一点就是:

            $User->fenxiang_fm = 'Uploads/'.$info[0]["savename"]; // 这里的$info[0]["savename"]的下标[0]表示上传的第1个图片按顺序,记住是下标
            $User->fenxiang_sc = 'Uploads/'.$info[1]["savename"]; // 这里的$info[1]["savename"]的下标[1]表示上传的第2个图片按顺序,记住是下标
         



下面是代码

function upload(){

        
            import("ORG.Net.UploadFile");
        
            $upload = new UploadFile();// 实例化上传类
    
            $upload->maxSize  = 3145728 ;// 设置附件上传大小
        
        
            $upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        
            $upload->saveRule = uniqid;//这里的时间是根据上传的图片的多少来自动改变图片的名称的(并且时间都不同,所以上传的图片的名称就不会相同)
            
            $upload->savePath =  './Public/Uploads/';// 设置附件上传目录
          
            if(!$upload->upload()) {// 上传错误提示错误信息
        
                $this->error($upload->getErrorMsg());
        
            }else{// 上传成功 获取上传文件信息
        
                $info =  $upload->getUploadFileInfo();
        
            }
        
            // 保存表单数据 包括附件数据
        
            $User = M("指定的要插入的数据表"); // 实例化User对象
        
            $User->create(); // 创建数据对象

       

            //   $User->fenxiang_fm和 $User->fenxiang_sc表示数据表中的 fenxiang_fm和fenxiang_sc字段

            $User->fenxiang_fm = 'Uploads/'.$info[0]["savename"]; // 这里的$info[0]["savename"]的下标[0]表示上传的第1个图片按顺序,记住是下标
            $User->fenxiang_sc = 'Uploads/'.$info[1]["savename"]; // 这里的$info[1]["savename"]的下标[1]表示上传的第2个图片按顺序,记住是下标
          
            $User->add(); // 写入用户数据到数据库
        
            $this->success("数据保存成功!");
        
        }
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值