zoukankan      html  css  js  c++  java
  • 使用ThinkPHP实现附件上传

    刚学的使用ThinkPHP框架简单上传附件(图片,文档,视频等文件)

    首先需要了解tp框架中Upload.class.php(ThinkPHP/Library/Think/Upload,class,php)中的几个函数

    1:getError() 获取上传错误信息

    2:uploadOne() 上传单个文件

    3:upload() 上传多个文件

    4:rootPath 上传文件保存根路径

    代码如下

    前台:

    <td>商品图片</td>
    <td>
        <input type="file" name="goods_pic" />
    </td>

    控制器

    //处理上传附件图片
           
            //判断是否上传  4:没有上传附件
            if ($_FILES['goods_pic']['error']<4) {
              
              //上传
              $cfg = array(
                'rootPath' => './Public/uploads/', //保存根路径
              );
              $upload = new ThinkUpload($cfg);  //完全限定名称 实例化对象  
    //uploadOne()方法执行成功后会把附件(在服务器上)的名字和路径等相关信息返回
    $file_info=$upload->uploadOne($_FILES['goods_pic']); //把上传好的附件存到数据库 拼接路径 //$upload->rootPath通过父类upload.class.php中的__get()方法获取配置中的rootPath $_POST['goods_big_img']=$upload->rootPath.$file_info['savepath'].$file_info['savename']; }

    如果对上传附件有其他要求,可参考父类Upload.class.php中上传配置config参数进行选择需要的参数,只需在上面代码$cfg=array()中重写即可!

    父类上传配置参数如下(可根据自己要求重写):

    private $config = array(
            'mimes'         =>  array(), //允许上传的文件MiMe类型
            'maxSize'       =>  0, //上传的文件大小限制 (0-不做限制)
            'exts'          =>  array(), //允许上传的文件后缀
            'autoSub'       =>  true, //自动子目录保存文件
            'subName'       =>  array('date', 'Y-m-d'), //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组
            'rootPath'      =>  './Uploads/', //保存根路径
            'savePath'      =>  '', //保存路径
            'saveName'      =>  array('uniqid', ''), //上传文件命名规则,[0]-函数名,[1]-参数,多个参数使用数组
            'saveExt'       =>  '', //文件保存后缀,空则使用原后缀
            'replace'       =>  false, //存在同名是否覆盖
            'hash'          =>  true, //是否生成hash编码
            'callback'      =>  false, //检测文件是否存在回调,如果存在返回文件信息数组
            'driver'        =>  '', // 文件上传驱动
            'driverConfig'  =>  array(), // 上传驱动配置
        );
  • 相关阅读:
    我的屌丝giser成长记-研二篇
    我的屌丝giser成长记-研一篇(下)
    C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)
    C# 日期格式化的中的(/)正斜杠的问题(与操作系统设置有关)
    C#,SOAP1.1与1.2的发布与禁用(SOAP 1.2 in .NET Framework 2.0)
    C#使用WebService 常见问题处理
    sql查询数据库中所有表的记录条数,以及占用磁盘空间大小。
    eclipse中的XML文件无法快捷键注释问题
    对比两个表中,字段名不一样的SQL
    oracle 恢复备份
  • 原文地址:https://www.cnblogs.com/zxf100/p/6773466.html
Copyright © 2011-2022 走看看