PHP文件上传小程序 适合初学者学习!


Posted in PHP onMay 23, 2019

本文实例为大家分享了PHP文件上传小程序的具体代码,供大家参考,具体内容如下

废话略过,直接上代码:

首先前端代码:index.html

<html>
<head>
 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
 <title>文件上传Demo</title>
</head>
<body>
<form method="post" action="upload.php" enctype="multipart/form-data">  
 <table border=0 cellspacing=0 cellpadding=0 align=center width="100%">  
 <tr>  
  <td width=55 height=20 align="center">
  <input type="hidden" name="MAX_FILE_SIZE" value="2000000">文件: 
  </td>  
  <td height="16">  
  <input name="file" type="file" value="浏览" />       
  <input type="submit" value="上传" name="submit" />  
  </td>  
 </tr>  
 </table>  
</form>
</body>
</html>

接下来是重点:upload.php

<?php
/**
 * @title 文件上传示例
 * @author FeoniX
 */
header("Content-Type:text/html; charset=utf-8");
if($_POST['submit']){
 $upfiles = new Upload();
 $upfiles->upload_file();
}
class Upload{
 public $upload_name; //上传文件名
 public $upload_tmp_name; //上传临时文件名
 public $upload_final_name; //上传文件的最终文件名
 public $upload_target_dir; //文件被上传到的目标目录
 public $upload_target_path; //文件被上传到的最终路径
 public $upload_filetype ; //上传文件类型
 public $allow_uploadedfile_type;//允许的上传文件类型
 public $upload_file_size; //上传文件的大小
 public $allow_uploaded_maxsize=10000000;//允许上传文件的最大值
 //构造函数
 public function __construct()
 {
 $this->upload_name = $_FILES["file"]["name"]; //取得上传文件名
 $this->upload_filetype = $_FILES["file"]["type"];
 $this->upload_tmp_name = $_FILES["file"]["tmp_name"];
 $this->allow_uploadedfile_type = array('jpeg','jpg','png','gif','bmp','doc','xls','csv','zip','rar','txt','wps');
 $this->upload_file_size = $_FILES["file"]["size"];
 $this->upload_target_dir="./upload";
 }
 //文件上传
 public function upload_file()
 {
 $upload_filetype = $this->getFileExt($this->upload_name);//获取文件扩展名
 if(in_array($upload_filetype,$this->allow_uploadedfile_type))//判断文件类型是否符合要求
 {
  if($this->upload_file_size < $this->allow_uploaded_maxsize)//判断文件大小是否超过允许的最大值
  {
  if(!is_dir($this->upload_target_dir))//如果文件上传目录不存在
  {
   mkdir($this->upload_target_dir);//创建文件上传目录
   chmod($this->upload_target_dir,0777);//改权限
  }
  $this->upload_final_name = date("YmdHis").rand(0,100).'.'.$upload_filetype;//生成随机文件名
  $this->upload_target_path = $this->upload_target_dir."/".$this->upload_final_name;//文件上传目标目录
  if(!move_uploaded_file($this->upload_tmp_name,$this->upload_target_path))//文件移动失败
  {
   echo "<font color=red>文件上传失败!</font>";
  }
  else
  {
   echo "<font color=green>文件上传成功!</font>";
  }
  }
  else
  {
  echo("<font color=red>文件太大,上传失败!</font>");
  }
 }
 else
 {
  echo("<font color=red>仅支持一下文件类型,请重新选择:<br>".implode(',',$this->allow_uploadedfile_type)."</font>");
 }
 }
  /**
   *获取文件扩展名
   *@param String $filename 要获取文件名的文件
   */
  public function getFileExt($filename){
   $info = pathinfo($filename);
   return @$info["extension"];
  }
}
?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
第四节--构造函数和析构函数
Nov 16 PHP
PHP 表单提交给自己
Jul 24 PHP
web server使用php生成web页面的三种方法总结
Oct 28 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
Nov 26 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
Jan 03 PHP
php中使用sftp教程
Mar 30 PHP
php获得网站访问统计信息类Compete API用法实例
Apr 02 PHP
PHP统一页面编码避免乱码问题
Apr 09 PHP
适用于初学者的简易PHP文件上传类
Oct 29 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
Mar 17 PHP
php metaphone()函数的定义和用法
May 15 PHP
php自定义函数转换html标签示例
Sep 29 PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 #PHP
PHP单例模式实例分析【防继承,防克隆操作】
May 22 #PHP
在Laravel5中正确设置文件权限的方法
May 22 #PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 #PHP
thinkphp5框架API token身份验证功能示例
May 21 #PHP
php curl操作API接口类完整示例
May 21 #PHP
PHP钩子实现方法解析
May 21 #PHP
You might like
php生成PDF格式文件并且加密
2015/06/22 PHP
php ajax实现文件上传进度条
2016/03/29 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
Web开发之JavaScript
2012/03/29 Javascript
JS定时器实例
2013/04/17 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
jQuery表单美化插件jqTransform使用详解
2015/04/12 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
原生js封装添加class,删除class的实例
2017/11/06 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
微信小程序嵌入腾讯视频源过程详解
2019/08/08 Javascript
Python守护进程(daemon)代码实例
2015/03/06 Python
Python脚本在Appium库上对移动应用实现自动化测试
2015/04/17 Python
centos6.4下python3.6.1安装教程
2017/07/21 Python
python调用API实现智能回复机器人
2018/04/10 Python
Python判断中文字符串是否相等的实例
2018/07/06 Python
python读取TXT每行,并存到LIST中的方法
2018/10/26 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
Python常见的pandas用法demo示例
2019/03/16 Python
Python GUI编程完整示例
2019/04/04 Python
Python xpath表达式如何实现数据处理
2020/06/13 Python
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
猫咪家具:CatsPlay
2018/11/03 全球购物
C语言怎样定义和声明全局变量和函数最好
2013/11/26 面试题
降消项目实施方案
2014/03/30 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
个人批评与自我批评材料
2014/10/17 职场文书
初中运动会前导词
2015/07/20 职场文书
2016大学生暑期三下乡心得体会
2016/01/23 职场文书
Python&Matlab实现樱花的绘制
2022/04/07 Python