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 相关文章推荐
Ajax+PHP 边学边练 之二 实例
Nov 24 PHP
php入门学习知识点三 PHP上传
Jul 14 PHP
php在window iis的莫名问题的测试方法
May 14 PHP
浅析php插件 HTMLPurifier HTML解析器
Jul 01 PHP
codeigniter数据库操作函数汇总
Jun 12 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
PHP生成和获取XML格式数据的方法
Mar 04 PHP
PHP查询附近的人及其距离的实现方法
May 11 PHP
PHP操作Redis常用技巧总结
Apr 24 PHP
php 可变函数使用小结
Jun 12 PHP
Ajax+PHP实现的分类列表框功能示例
Feb 11 PHP
PHP后台备份MySQL数据库的源码实例
Mar 18 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 作用域解析运算符(::)
2010/07/27 PHP
浅析PHP原理之变量(Variables inside PHP)
2013/08/09 PHP
单台服务器的PHP进程之间实现共享内存的方法
2014/06/13 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
js类中的公有变量和私有变量
2008/07/24 Javascript
禁止js文件缓存的代码
2010/04/09 Javascript
JSDoc 介绍使用规范JsDoc的使用介绍
2011/02/12 Javascript
range 标准化之获取
2011/08/28 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
2014/06/24 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
2015/05/03 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
在 React、Vue项目中使用SVG的方法
2018/02/09 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
解决使用layui对select append元素无效或者未及时更新的问题
2019/09/18 Javascript
python调用windows api锁定计算机示例
2014/04/17 Python
Python3计算三角形的面积代码
2017/12/18 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
建筑工程自我鉴定
2013/10/18 职场文书
网上商城创业计划书范文
2014/01/31 职场文书
村庄环境整治方案
2014/05/15 职场文书
学生安全承诺书
2014/05/22 职场文书
周一问候语大全
2015/11/10 职场文书
《正比例》教学反思
2016/02/23 职场文书
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python
剑指Offer之Java算法习题精讲二叉树专项训练
2022/03/21 Java/Android
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python