• 技术文章 >后端开发 >php教程

    刚写的一个文件下传类。欢迎评点

    2016-06-13 12:56:15原创271
    刚写的一个文件上传类。欢迎评点



    上载文件表单



    请选择文件:









    define(UPLOAD_DIR,'D:\\AppServ\\www\\test\\upload\\');
    define(UPLOAD_WEB_DIR,'\\test\\upload\\');

    class upload_file_class{

    var $input_name; //上传file的name
    var $max_size; //最大上传大小 单位kb
    var $allow_ext; //所允许的扩展名
    var $err_info; //错误信息

    /**
    * 构造函数
    *
    * @param $input_name
    * @param $max_size
    * @param $allow_ext
    * @return
    */
    function __construct($input_name,$max_size=1024,$allow_ext=array('jpg','png','gif')){

    $this->input_name = $input_name;
    $this->max_size = $max_size;
    $this->allow_ext = $allow_ext;
    $this->err_info_arr = array(

    1=>'上传文件大小超过了ini的设定值',
    2=>'上传文件大小超过了表单设定的最大值',
    3=>'文件只有部分被上传',
    4=>'没有文件被上传',
    5=>'上传文件大小超过了允许的设定值',
    6=>'不是允许的上传文件类型',
    7=>'创建目录失败,请确认是否有创建目录的权限',
    8=>'创建文件失败,请重试。',
    9=>'文件上传时产生错误,请重试。'

    );

    }

    /**
    *文件上传
    *
    * @return $file_path_arr 上传成功的文件路径数组
    */
    public function upload(){

    global $_FILES;
    if( !is_array($this->input_name) )$this->input_name = array($this->input_name);
    $file_path_arr = array();
    foreach ($this->input_name as $k => $input_name ) {

    $__F = $_FILES[$input_name];
    if( !empty($__F) ){

    if( $__F['error'] > 0 ){

    //客户端上传产生错误
    $this->set_err($__F['error']);

    }
    else{

    $__F['size'] = $__F['size']/1024;
    if( $this->max_size >= $__F['size'] ){

    if( $this->check_ext($__F['name']) ){

    $save_dir_info = $this->check_dir();
    if( $save_dir_info ){

    $rand_num = date('Ymdhis').rand(0,10000000);
    $ext = $this->get_img_ext($__F['name']);
    $new_file_name = $rand_num.".{$ext}";
    $full_path = $save_dir_info['full_dir'].$new_file_name;
    $full_web_path = $save_dir_info['full_web_dir'].$new_file_name;
    if( !file_exists($full_path) ){

    if( move_uploaded_file($__F['tmp_name'],$full_path) ){
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:nbsp name gt input this
    上一篇: 怎么通过PHP得到此URL跳转后的URL 下一篇: 请问版主xuzuning
    千万级数据并发解决方案

    相关文章推荐

    • 深入了解PHP反序列化原生类• 带你吃透16个PHP魔术方法• 引用php文件的路径定向有关问题• 上传有关问题函数 拜托了• PHP变换国际编码
    1/1

    PHP中文网

    上载文件表单