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设计模式 Mediator (中介者模式)
Jun 26 PHP
PHP的一个基础知识 表单提交
Jul 04 PHP
PHP里的中文变量说明
Jul 23 PHP
领悟php接口中interface存在的意义
Jun 27 PHP
php+mysqli使用预处理技术进行数据库查询的方法
Jan 28 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
php从身份证获取性别和出生年月
Feb 09 PHP
基于thinkPHP3.2实现微信接入及查询token值的方法
Apr 18 PHP
PHP完全二叉树定义与实现方法示例
Oct 09 PHP
详解PHP中的外观模式facade pattern
Feb 05 PHP
php基于Redis消息队列实现的消息推送的方法
Nov 28 PHP
php中Swoole的热更新实现代码实例
Mar 04 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 SQL防注入代码集合
2008/04/25 PHP
PHP读取文件内容后清空文件示例代码
2014/03/18 PHP
php获取当前页面完整URL地址
2015/12/30 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
JS/jQuery实现DIV延时几秒后消失或显示的方法
2018/02/12 jQuery
详解如何用babel转换es6的class语法
2018/04/03 Javascript
Vue中实现权限控制的方法示例
2019/06/07 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
python开发中module模块用法实例分析
2015/11/12 Python
详解python开发环境搭建
2016/12/16 Python
python+selenium 定位到元素,无法点击的解决方法
2019/01/30 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
详解python 利用echarts画地图(热力图)(世界地图,省市地图,区县地图)
2019/08/06 Python
python实现扫雷小游戏
2020/04/24 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
python 利用opencv实现图像网络传输
2020/11/12 Python
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
法学毕业生自我鉴定
2013/11/08 职场文书
会计助理的岗位职责
2013/11/29 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
企业管理毕业生求职信
2014/03/11 职场文书
毕业晚会主持词
2014/03/24 职场文书
树转促学习心得体会
2014/09/10 职场文书
高校师德师风自我剖析材料
2014/09/29 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书