巅云智能建站平台搭建版(创业门户版)火爆上线,终身授权!新增:文章智能采集+全站真静态打包+城市分站+智能小程序+非法词过滤+H5自适应+智能链词等功能功能详情
建站专提News

PHP 文件编程综合案例-文件上传的实现

一佰互联网站开发设计(www.yinxi.net) 发布日期 2019-04-29 09:02:35 浏览数: 96

PHP文件上传
1、upload.php
复制代码 代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>ddd</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
    //接收
    $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
    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"];
        }
    }
?>
一佰互联是全国知名建站品牌服务商,我们有九年网站建设、网站制作、网页设计、php开发和域名注册及虚拟主机服务经验,提供的自助建站服务更是全国有名。近年来还整合团队优势自主开发了可视化多用户”巅云建站系统“3.0平台版,拖拽排版网站制作设计,轻松实现pc站、手机微网站、小程序、APP一体化全网营销网站建设 ,已成功的为全国上百家网络公司提供自助建站平台搭建服务。

相关新闻more

18
06月
title标签对网站优化有着至关重要的作用T

title标签对网站优化有着至关重要的作用Title标签的作用:告诉用户和百度蜘蛛网页的主题,百度判断网页的内容时,title标签作为主要参... >>详情

27
04月
PHP中strnatcmp()函数“自然排序

本文实例讲述了PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法。分享给大家供大家参考,具体如下:PHP中strnatcm... >>详情

17
05月
开站文章的准备工作该如何进行?_巅云建站

今天听到一句歌词:阳光总在风雨后,我们站长小伙伴们优化网站不也使一样的道理嘛,在风雨中我们建设着自己的网站,努力并坚持做着优化,那么阳光 总... >>详情

16
03月
2015年推荐国内十大自助建站型虚拟主机空间

2015年是互联网发展的高峰期,自助建站早在20年前发展至今已经是相当成熟的市场了,自2014年国内建站型虚拟主机服务商相继推出“电脑站+手... >>详情

高端网站建设

美工兼顾SEO,为企业电子商务营销助力!

电话:

023-85725751
建站

产品

域名注册 虚拟主机 云服务器 企业邮局
智能建站 APP打包 微站/小程序 创业平台
网站推广 媒体营销 智能采集 AI机器人
400电话 短信营销 店销机器人
私人定制 门户网站