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 HandlerSocket的使用
May 02 PHP
PHP跨时区(UTC时间)应用解决方案
Jan 11 PHP
phpexcel导入excel数据使用方法实例
Dec 24 PHP
php中实现精确设置session过期时间的方法
Jul 17 PHP
PHP中使用GD库创建圆形饼图的例子
Nov 19 PHP
php常用文件操作函数汇总
Nov 22 PHP
win7安装php框架Yii的方法
Jan 25 PHP
php将文件夹打包成zip文件的简单实现方法
Oct 04 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
PHP中的函数声明与使用详解
May 27 PHP
php输出文字乱码的解决方法
Oct 04 PHP
laravel 创建命令行命令的图文教程
Oct 23 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
第一个无线电台是由谁发明的
2021/03/01 无线电
关于file_get_contents返回为空或函数不可用的解决方案
2013/06/24 PHP
php实现将数组转换为XML的方法
2015/03/09 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
JavaScript 学习笔记二 字符串拼接
2010/03/28 Javascript
js 字符串转化成数字的代码
2011/06/29 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
跟我学习javascript的prototype原型和原型链
2015/11/18 Javascript
基于jQuery ligerUI实现分页样式
2016/09/18 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
python中map()与zip()操作方法
2016/02/27 Python
Python自定义主从分布式架构实例分析
2016/09/19 Python
python实现图片处理和特征提取详解
2017/11/13 Python
Python线程下使用锁的技巧分享
2018/09/13 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
flask开启多线程的具体方法
2020/08/02 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
山海经纬软件测试笔试题和面试题
2013/04/02 面试题
毕业生求职的求职信
2013/12/05 职场文书
管理部部长岗位职责
2013/12/05 职场文书
银行营业厅大堂经理岗位职责
2014/01/06 职场文书
五一家具促销方案
2014/01/10 职场文书
幼儿园秋游感想
2014/03/12 职场文书
领导接待方案
2014/03/13 职场文书
梅花魂教学反思
2014/04/25 职场文书
群众路线个人对照检查材料
2014/09/23 职场文书
辩论赛主持人开场白
2015/05/29 职场文书
gojs实现蚂蚁线动画效果
2022/02/18 Javascript
ant design charts 获取后端接口数据展示
2022/05/25 Javascript