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 相关文章推荐
发布一个用PHP fsockopen写的HTTP下载的类
Feb 22 PHP
escape unescape的php下的实现方法
Apr 27 PHP
THINKPHP内容分页代码分享
Jan 14 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
Jun 17 PHP
浅谈php的优缺点
Jul 14 PHP
php无序树实现方法
Jul 28 PHP
PHP实现的简单缓存类
Jul 29 PHP
php链式操作的实现方式分析
Aug 12 PHP
Laravel框架Auth用户认证操作实例分析
Sep 29 PHP
浅析PHP echo 和 print 语句
Jun 30 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
Feb 27 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生成短网址示例
2014/05/05 PHP
PHP中使用hidef扩展代替define提高性能
2015/04/09 PHP
PHP防止刷新重复提交页面的示例代码
2015/11/11 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
2019/11/09 PHP
动态控制Table的js代码
2007/03/07 Javascript
js 链式延迟执行DOME
2012/01/04 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
Jquery增加鼠标中间功能mousewheel的实例代码
2013/09/05 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
使用RequireJS优化JavaScript引用代码的方法
2015/07/01 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
基于javascript的Form表单验证
2016/12/29 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
实现div滚动条默认最底部以及默认最右边的示例代码
2017/11/15 Javascript
jQuery中ajax获取数据赋值给页面的实例
2017/12/31 jQuery
详解vue-admin和后端(flask)分离结合的例子
2018/02/12 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
2020/05/19 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
python 动态加载的实现方法
2017/12/22 Python
Python字符串的一些操作方法总结
2019/06/10 Python
python实现月食效果实例代码
2019/06/18 Python
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
请写出 BOOL flag 与"零值"比较的 if 语句
2016/02/29 面试题
教育专业自荐书范文
2013/12/17 职场文书
书香家庭事迹材料
2014/05/09 职场文书
大学生实习证明范文(5篇)
2014/09/18 职场文书
诚信教育主题班会
2015/08/13 职场文书
Python中Cookies导出某站用户数据的方法
2021/05/17 Python
CSS文本阴影 text-shadow 悬停效果详解
2022/05/25 HTML / CSS
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers