时间2014年4月4日20:38:50 商品图片上传


步骤:

1 图片文件传到服务器某个路径下,/201404/04/isj.jpg

2 路径信息写入到 goods表中


设置自动加载类:

function __autoload($class) {

    if(strtolower(substr($class,-5)) == 'model') {

        require(ROOT . 'Model/' . $class . '.class.php');

    } else if(strtolower(substr($class,-4)) ==  'tool') {

       require(ROOT . 'tool/' . $class .  '.class.php');

    } else {

        require(ROOT . 'include/' . $class . '.class.php');

    }

}

修改文件上传类:

<?php

/**

*  Created by PhpStorm.

*  User: Administrator

*  Date: 14-4-4

*  Time: 下午4:31

*/

/*

* 单文件上传类*/

defined('ACC') || exit('ACC Denied');

/*

* 文件上传:

* 配置允许的后缀

* 配置允许大小

* 随机生成目录

* 随机生成文件名

* 获取文件后缀

* 判断文件后缀

* 良好的报错支持*/


class UpTool{

    protected  $allow_ext =  'jpg,jpeg,gif,bmp,png'; // 允许上传文件的类型

    protected  $maxSize = 1;// 文件最大上传的大小

    protected  $file = null;//存储上传文件的信息

    protected  $errno = 0;

    protected  $error = array(

        0=>'无错',

        1=>'上传文件大小超出系统限制',

        2=>'上传文件大小超出网页表单限制',

        3=>'文件只有部分被上传',

        4=>'没有文件被上传',

        6=>'找不到临时文件夹',

        7=>'文件写入失败',

        8=>'不允许的文件类型',

        9=>'文件大小超出允许范围',

        10=>'创建目录失败',

        11=>'文件移动失败'

    );


    /*获取文件信息*/

    protected  function  getFile($key){

        //获取文件属性

        $this->file = $_FILES[$key];

    }

    /*文件上传*/

    public  function  up($key){

        //检测是否存在文件域

        if(!isset($_FILES[$key])){

           return false;

        }

        //

        $f = $_FILES[$key];

        //检验上传是否成功

        if($f['error']){

           $this->errno = $f['error'];

            return false;

        }

        //获取后缀

        $ext = $this->getExt($f['name']);

       //检测后缀

        if(!$this->isAllowExt($ext)){

           $this->errno = 8;

           return false;

        }

        //检测大小

        if(!$this->isAllowSize($f['size'])){

           $this->errno = 9;

           return false;

        }

        //创建目录

        $dir = $this->mk_dir();


        if($dir == false){

           $this->errno = 10;

           return false;

        }

        //生成随机文件名

        $newName = $this->randName().'.'.$ext;

        $dir = $dir.'/'.$newName;

        //移动文件


        if(move_uploaded_file($f['tmp_name'],$dir)){

           return str_replace(ROOT,'',$dir);

        }else{

           $this->errno = 11;

           return false;

        }

   }

    /*获取错误信息*/

    public  function  getErr(){

        return $this->error[$this->errno];

    }

/*动态添加后缀

   param string $ext;*/

   public   function  setExt($ext){

       $this->allow_ext=$ext;

   }

   /*动态设置大小

   */

   public   function  setSize($size){

       $this->maxSize = $size;

   }

    /*获取文件的后缀名

    param string $file

    return string $ext 后缀名*/

    protected  function  getExt($file){

        $tmp = explode('.',$file);

        $ext =end($tmp) ;

        return $ext;

    }


    /*判断是否允许传递的后缀名,要防止大小写问题

    param string $ext 文件后缀

    return bool 是否允许上传*/

    protected  function  isAllowExt($ext){

        return  in_array(strtolower($ext),explode(',',strtolower($this->allow_ext)));

    }

    /*判断文件大小是否在允许范围内 */

    protected function  isAllowSize($size){

        return $size<= $this->maxSize*1024*1024;

    }

    //按日期创建目录

    protected  function mk_dir(){

        $dir =ROOT.'data/images/'. date('ym/d',time());

        if( is_dir($dir) || mkdir($dir,0777,true) ){

           return $dir;

       }else{

           return false;

        }

    }

    //生成随机文件名

    protected  function  randName($length = 6){

        $str = 'abcdefghijkmnpqrstuvwxyz23456789';

        return substr(str_shuffle($str),0,$length);

    }


}


添加到商品添加处理页goodaddAct.php

//上传图片

$uptool = new UpTool();

//$uptool->setExt('doc');

$ori_img = $uptool->up('ori_img');


if($ori_img){

    $data['ori_img'] = $ori_img;

}else{

    echo "图片上传失败<br/>";

    echo $uptool->getErr();

    exit;

}




你可能感兴趣的:(function,服务器,图片,include,require)