TP框架---文件上传功能


<body>

<volist name="filelist" id="vo">
  小图:<img src="__PUBLIC__Img/s_{$vo['filename']}" /><br />
  大图:<img src="__PUBLIC__Img/m_{$vo['filename']}" /><br />
 
</volist>

<form action="__URL__/upload" 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>


</body>

</html>

 

==================================

<?php
/**
 * 文件上传功能
 * @author huyaping    hypjj108@163.com
 */

class FileAction extends Action{
    //初始化显示页面操作
    public function index(){
        //查询数据表16860_file表中上传文件数据信息
        $file = M('file');
        $list = $file->select();
        $this->assign('filelist',$list);
        $this->display();
    }
   
    //获取表单提交的数据操作
    public function upload(){
        //判断是否存在上传文件
        if(empty($_FILES)){
            //不存在,提示错误信息
            $this->error('请选择需要上传的文件!');
        }else{
            //存在,调用与系统上传类操作的方法upload_todu()
            $Info = $this->upload_todu();
           
            //将上传文件数据写入到数据库中去
            if(isset($Info)){
                //调用与数据库模型完成的相关操作方法,成功返回true,失败返回false
                if($this->M_todo($Info)){
                    $this->success('文件上传成功');
                }else{
                    $this->error('文件数据写入数据库失败');
                }
            }
        }
    }
   
   
    //完成与系统上传类相关操作
    private function upload_todu(){
        //导入系统UploadFile类文件
       
        //import导入方法加@.ORG.Net.UploadFile表示导入当前项目下的类文件,没有则是导入系统自带的文件
        import('ORG.Net.UploadFile');
       
        //实例化UploadFile类
        $upload = new UploadFile();
       
        //设置文件上传的一些属性规范
        $upload->maxSize = '200000';            //默认为-1,不限制大小
        $upload->savePath = './Diy/Img/';        //上传文件保存的路径
        $upload->saveRule = uniqid;                //上传文件的保存规则,默认为uniqid函数
        $upload->uploadReplace = true;            //存在同名文件是否覆盖
        $upload->allowExts = array('jpg','jpeg','gif','png');            //允许上传文件的后缀,使用数组设置,默认为空数组,表示不限制
        $upload->allowTypes = array('image/jpg','image/jpeg','image/gif','image/png');                //允许上传文件类型,使用数组设置,默认为空数组,表示不限制
        $upload->thumb = true;                //是否对文件进行缩略图处理
        $upload->thumbMaxWidth = '100,120';        //缩略图最大宽度,多个用逗号分割
        $upload->thumbMaxHeight = '60,80';        //缩略图最大高度,多个用逗分割
        $upload->thumbPrefix = 's_,m_';            //缩略图文件前缀,多个用逗号分隔
        $upload->thumbPath = '';                //缩略图的保存路径,留空的话则去文件上传目录本身
        $upload->thumbRemoveOrigin = true;        //生成缩略图后是否删除原图
       
        //调用UploadFile类中upload方法进行文件数据处理,成功返回上传的文件信息,错误返回false
        if($upload->upload()){
            //用UploadFile类中专门获取文件上传成功信息方法getUploadFileInfo()
            $result = $upload->getUploadFileInfo();
            return $result;
        }else{
            //调用UploadFile类中有专门对文件上传失败的错误信息提示方法getErrorMsg()
            $this->error($upload->getErrorMsg());
        }
       
    }
   
    //完成与数据库模型相关操作
    private function M_todo($param){
        //实例化模型
        $file = M('file');
       
        //针对单个文件或多个文件上传处理
        for($i=0;$i<count($param);$i++){
            //接受参数数据并进行处理
            $data['filename'] = $param[$i]['savename'];
            if(!$file->data($data)->add()){
                //写入数据库失败则返回false
                return  false;
            }
        }
       
        //for循环里数据全部写入成功,则返回true
        return true;
    }
   
}


?>

转载于:https://my.oschina.net/hypduck88/blog/79933

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值