zoukankan      html  css  js  c++  java
  • 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="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>2*1024*1024){
    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
    if(is_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_name,strripos($file_true_name,"."));
    //echo $upload_file.$move_to_file;
    //中文要转码

    if(move_uploaded_file($upload_file,iconv("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>2*1024*1024){
    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
    if(is_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;
    //中文要转码

    if(move_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"];
    }
    }
    ?>

  • 相关阅读:
    1058 A+B in Hogwarts (20)
    1046 Shortest Distance (20)
    1061 Dating (20)
    1041 Be Unique (20)
    1015 Reversible Primes (20)(20 分)
    pat 1027 Colors in Mars (20)
    PAT 1008 Elevator (20)
    操作系统 死锁
    Ajax的get方式传值 避免& 与= 号
    让IE浏览器支持CSS3表现
  • 原文地址:https://www.cnblogs.com/xlz307/p/3428126.html
Copyright © 2011-2022 走看看