ThinkPHP中图片上传(批量上传)

这篇博客介绍了如何在ThinkPHP框架下实现图片的批量上传功能。通过Action中的代码展示,博主详细解释了如何处理上传的文件,并在模板文件中使用HTML表单允许用户选择多个文件进行上传。此外,还展示了如何在成功上传后展示已上传图片的缩略图和原图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   Action中:

//图片上传和图片批量上传图片

    public function img(){
        $this->display(img);
    }
    public function upload(){
    import('@.ORG.Util.UploadFile');
        //2,实例化对象,调用对象的方法
        $file = new UploadFile();
        //3,上传的话需要做一些设置
        //默认情况下是-1,代表不限制文件的大小
        $file ->maxSize = '10000000000';
        //allowExts 设置上传文件的扩展名
        $file ->allowExts = array('jpg','gif','png','jpeg');
        //允许上传文件的类型
        $file ->allowTypes = array('image/png','image/jpg','image/pjpeg','image/gif','image/jpeg');
        //对上传文件进行缩略图处理
        $file->thumb = true;
        //缩略图的最大的宽度
        $file->thumbMaxWidth = '100,30';
        //缩略图的最大的高度
        $file->thumbMaxHeight = '100,30';
        //缩略图的前缀
        $file->thumbPrefix = 's_,m_';   
         // 缩略图保存路径
         $file->thumbPath='./Public/Images/';
         //如果上传的图片和原图一样,是否删除原图
         $file->thumbRemoveOrigin = false;
         // 上传文件保存路径
         $file->savePath = './Public/Upload/';
         // 存在同名是否覆盖
         $file->uploadReplace = true;
        
         if($file->upload()){
             $info = $file->getUploadFileInfo();
             return $info;
             
         }else{
             $this->error($file->getErrorMsg());
         }
    
    }
    public function insert(){
        if(empty($_FILES)){
            $this->error('请选择需要上传的文件');
        }else{
            $data = $this -> upload();
            if(isset($data)){
                //如果上传文件的信息不为空,我们就将这些信息保存到数据库中
                $this->db_img($data);
            }else{
                $this->error('插入到数据库失败');
            }
            
        }
        
    }
    public function db_img($data){
        $img=M('File');
        
        $list=$img->field('file_name')->select();
        //var_dump($list);
        $this->assign('list',$list);
        $this->display(img);
        
        for ($i=0;$i<count($data);$i++){
                $data['file_name']=$data[$i]['savename'];
                $img->data($data)->add();
            }    

    }

模板文件中:

<form action='__URL__/insert' method='POST' enctype='multipart/form-data'>
        <input type='file' name='file[]'/><br/>
        <input type='file' name='file[]'/><br/>
        <input type='file' name='file[]'/><br/>
        <input type='submit' value='上传'/>
    </form>

<volist name='list' id='vo'>
小图:<img src='/Thinkphp/PUBLIC/Images/s_{$vo.file_name}'/>
大图:<img src='/Thinkphp/PUBLIC/Images/m_{$vo.file_name}'/>
</volist>


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值