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 相关文章推荐
提问的智慧
Oct 09 PHP
NT IIS下用ODBC连接数据库
Oct 09 PHP
php面向对象全攻略 (五) 封装性
Sep 30 PHP
php 在文件指定行插入数据的代码
May 08 PHP
php excel类 phpExcel使用方法介绍
Aug 21 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
Mar 24 PHP
php array_pop()数组函数将数组最后一个单元弹出(出栈)
Jul 12 PHP
PHP APC配置文件2套和参数详解
Jun 11 PHP
PHP实现的进度条效果详解
May 03 PHP
PHP文件操作实例总结
Sep 27 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
Oct 14 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注入分析
2014/10/23 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
PHP获取客户端及服务器端IP的封装类
2016/07/21 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
js AspxButton的客户端操作
2009/06/26 Javascript
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
javascript与CSS复习(三)
2010/06/29 Javascript
JavaScript代码编写中各种各样的坑和填坑方法
2014/06/06 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
three.js实现3D视野缩放效果
2017/11/16 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
解决Vue中的生命周期beforeDestory不触发的问题
2020/07/21 Javascript
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
基于Python实现文件大小输出
2016/01/11 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
pandas 快速处理 date_time 日期格式方法
2018/11/12 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
HTML5实践-图片设置成灰度图
2012/11/12 HTML / CSS
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
Under Armour澳大利亚官网:美国知名的高端功能性运动品牌
2018/02/22 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
PyQt QMainWindow的使用示例
2021/03/24 Python
业务员岗位职责
2013/11/16 职场文书
生产总经理岗位职责
2013/12/19 职场文书
病房管理制度范本
2015/08/06 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python