PHP 文件上传的综合实例

    添加时间:2013-7-11 点击量:

    PHP文件上传


    1、upload.php



    <!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
    

    <html>
    <head>
    <title>Add文件上传_www.jbxue.com</title>
    <meta http-equiv=content-type content=text/html; charset=UTF-8>
    </head>
    <body>
    <!--文件上传要重视:1、要有enctyp,2、method=post-->
    <form enctype=multipart/form-data action=uploadProcess.php method=post >
    <table>
    <tr><td>请填写用户名</td><td><input type=text name=username></td></tr>
    <tr><td>请简单介绍文件</td><td><textarea rows=7 cols=50 name=fileintro style=width:300px;></textarea></td></tr>
    <tr><td>请上传你的文件</td><td><input type=file name=myfile></td></tr>
    <tr><td colspan=2><input type=submit value=上传><td></tr>
    </table>
    </form>
    </body>
    </html>


    2、uploadProcess.php



    <?php
    
    /
    文件上传 接管数据
    by www.jbxue.com
    /
    ¥username=¥_POST[username];
    ¥fileintro=¥_POST[fileintro];

    //echo ¥username.¥fileintro;
    //获取文件信息

    /
    echo <pre>;
    print_r(¥_FILES);
    echo </pre>;
    /
    //获取文件的大小
    ¥file_size=¥_FILES[myfile][size];
    if¥file_size>210241024){
    echo <script type=text/javascript>window.alert(文件不克不及大于2M)</script>;
    exit();
    }
    //获取文件类型
    ¥file_type=¥_FILES[myfile][type];
    if¥file_type!=image/jpeg && ¥file_type!=image/pjpeg){
    echo 文件类型只能是 jpg 格局;
    exit();
    }

    //断定上传是否OK
    ifis_uploaded_file¥_FILES[myfile][tmp_name])){
    //获得上传的文件 转存到你的目次
    ¥upload_file=¥_FILES[myfile][tmp_name];

    //防止覆盖题目,为每个用户建树一个文件夹
    ¥user_path=¥_SERVER[DOCUMENT_ROOT]./file/up/.¥username;
    if(!file_exists¥user_path)){
    mkdir¥user_path);
    }
    //¥move_to_file=¥user_path./.¥_FILES[myfile][name];
    //防止用户上传用户名雷同的题目

    ¥file_true_name=¥_FILES[myfile][name];
    ¥move_to_file=¥user_path./.time().rand(1,1000).substr¥file_true_namestrripos¥file_true_name,.));
    //echo ¥upload_file.¥move_to_file;
    //中文要转码

    ifmove_uploaded_file¥upload_fileiconv(utf-8,gb2312,¥move_to_file))){
    echo ¥_FILES[myfile][name].上传成功;
    }
    else{
    echo 上传失败;
    }
    }
    else{
    echo 上传失败;
    }
    ?>


    3、封装:



    <?php
    
    /
    文件上传类
    by www.jbxue.com
    /
    class Upload{
    public ¥upload_name; //上传文件名
    public ¥upload_tmp_path; //上传文件保存到办事器的temp路径
    public ¥file_size;
    public ¥file_type;
    public ¥file_save_path;
    function __construct(){
    ¥this->upload_name=¥_FILES[myfile][name];
    ¥this->upload_tmp_path=¥_FILES[myfile][tmp_name];
    ¥this->file_size=¥_FILES[myfile][size];
    ¥this->file_type=¥_FILES[myfile][type];
    ¥this->allow_file_type = array(jpeg,jpg,png,gif,bmp,doc,zip,rar,txt,wps,xlsx,ppt);
    ¥this->file_save_path=¥_SERVER[DOCUMENT_ROOT]./file/up/;
    }
    public function upload_file(¥username){
    //断定文件大小
    if¥this->file_size>210241024){
    echo <script type=text/javascript>window.alert(文件不克不及大于2M)</script>;
    exit();
    }
    //获取文件类型
    /
    if(¥this->file_type!=image/jpeg && ¥this->file_type!=image/pjpeg){
    echo 文件类型只能是 jpg 格局;
    exit();
    }
    / //获取文件的扩大名
    ¥file_type=¥this->getFileExt(¥this->upload_name);
    if(!in_array¥file_type¥this->allow_file_type)){
    echo 上传文件类型格局错误;
    exit();
    }
    //断定上传是否OK
    ifis_uploaded_file¥this->upload_tmp_path)){

    //防止覆盖题目,为每个用户建树一个文件夹
    ¥user_path=¥this->file_save_path.¥username;
    if(!file_exists¥user_path)){
    mkdir¥user_path);
    }
    //¥move_to_file=¥user_path./.¥_FILES[myfile][name];
    //防止用户上传用户名雷同的题目
    //¥file_true_name=¥_FILES[myfile][name];

    ¥move_to_file=¥user_path./.time().rand(1,1000).substr¥this->upload_name,strripos¥this->upload_name,.));
    //echo ¥upload_file.¥move_to_file;
    //中文要转码

    ifmove_uploaded_file¥this->upload_tmp_path,iconv(utf-8,gb2312,¥move_to_file))){
    echo ¥this->upload_name.上传成功;
    }
    else{
    echo 上传失败;
    }
    }
    else{
    echo 上传失败;
    }
    }

    //获取文件的扩大名
    public function getFileExt(¥filename){
    ¥fileExt=pathinfo¥filename);
    return ¥fileExt[extension];
    }
    }
    ?>


    文艺不是炫耀,不是花哨空洞的文字堆砌,不是一张又一张的逆光照片,不是将旅行的意义转化为名牌包和明信片的物质展示;很多时候它甚至完全不美——它嘶吼、扭曲,它会痛苦地抽搐,它常常无言地沉默。——艾小柯《文艺是一种信仰》
    分享到: