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 开源AJAX框架14种
Aug 24 PHP
php zip文件解压类代码
Dec 02 PHP
PHP JSON格式数据交互实例代码详解
Jan 13 PHP
Php Image Resize图片大小调整的函数代码
Jan 17 PHP
163的邮件用phpmailer发送(实例详解)
Jun 24 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
May 05 PHP
php实现的美国50个州选择列表实例
Apr 20 PHP
php实现倒计时效果
Dec 19 PHP
PHP编程基本语法快速入门手册
Jan 07 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
PHP实现的服务器一致性hash分布算法示例
Aug 09 PHP
PHP7 安装event扩展的实现方法
Oct 08 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 isset()与empty()的使用区别详解
2010/08/29 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
2016/02/04 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
jQuery EasyUI NumberBox(数字框)的用法
2010/07/08 Javascript
javascript instanceof 内部机制探析
2010/10/15 Javascript
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
2011/08/09 Javascript
javascript针对DOM的应用分析(三)
2012/04/15 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
JS实现随机乱撞彩色圆球特效的方法
2015/05/05 Javascript
js日期范围初始化得到前一个月日期的方法
2015/05/05 Javascript
JS实现可直接显示网页代码运行效果的HTML代码预览功能实例
2015/08/06 Javascript
EasyUI闪屏EasyUI页面加载提示(原理+代码+效果图)
2016/02/21 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
vue2.x集成百度UEditor富文本编辑器的方法
2018/09/21 Javascript
jQuery实现日历效果
2020/09/11 jQuery
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
工程承包协议书范本
2014/09/29 职场文书
催款函怎么写
2015/06/24 职场文书
初级职称评定工作总结
2015/08/13 职场文书
css背景和边框标签实例详解
2021/05/21 HTML / CSS