zoukankan      html  css  js  c++  java
  • PHP 文件上传的综合实例

    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"];
    }
    }
    ?>
  • 相关阅读:
    从Oracle提供两种cube产品说开
    Sql Server DWBI的几个学习资料
    Unload Oracle data into text file
    初学Java的几个tips
    我常用的Oracle知识点汇总
    benefits by using svn
    如何在windows上使用putty来显示远端linux的桌面
    building commercial website using Microsoft tech stack
    Understand Thread and Lock
    Update google calendar by sunbird
  • 原文地址:https://www.cnblogs.com/study100/p/3183182.html
Copyright © 2011-2022 走看看