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 相关文章推荐
FirePHP 推荐一款PHP调试工具
Apr 23 PHP
php array_filter除去数组中的空字符元素
Jun 21 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
PDO防注入原理分析以及注意事项
Feb 25 PHP
用php代码限制国内IP访问我们网站
Sep 26 PHP
详解WordPress中提醒安装插件以及隐藏插件的功能实现
Dec 25 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
Jan 04 PHP
支付宝服务窗API接口开发php版本
Jul 20 PHP
Thinkphp事务操作实例(推荐)
Apr 01 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
在Laravel5中正确设置文件权限的方法
May 22 PHP
浅谈PHP中的那些魔术常量
Dec 02 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
77A一级收信机修理记
2021/03/02 无线电
thinkphp隐藏index.php/home并允许访问其他模块的实现方法
2016/10/13 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
jquery BS,dialog控件自适应大小
2009/07/06 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
js indexOf()定义和用法
2012/10/21 Javascript
JS中图片缓冲loading技术的实例代码
2013/08/29 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
js中window.open打开一个新的页面
2014/08/10 Javascript
jQuery固定元素插件scrolltofixed使用指南
2015/04/21 Javascript
jQuery 获取多选框的值及多选框中文的函数
2016/05/16 Javascript
jquery插件autocomplete用法示例
2016/07/01 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
2017/04/20 Javascript
JavaSctit 利用FileReader和滤镜上传图片预览功能
2017/09/05 Javascript
基于Vue开发数字输入框组件
2017/12/19 Javascript
使用python实现baidu hi自动登录的代码
2013/02/10 Python
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
python-opencv 将连续图片写成视频格式的方法
2019/01/08 Python
使用OpenCV实现仿射变换—平移功能
2019/08/29 Python
Python imread、newaxis用法详解
2019/11/04 Python
使用Python实现正态分布、正态分布采样
2019/11/20 Python
Python 生成VOC格式的标签实例
2020/03/10 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
把富文本的回车转为br标签
2019/08/09 HTML / CSS
Html5新标签解释及用法
2012/02/17 HTML / CSS
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
主管职责范文
2013/11/09 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
工作会议通知
2015/04/15 职场文书
具结保证书范本
2015/05/11 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书
《妈妈别哭,有我在》读后感3篇
2020/01/13 职场文书
postgresql 删除重复数据案例详解
2021/08/02 PostgreSQL
html5调用摄像头截图功能
2022/01/18 Javascript