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 相关文章推荐
推荐一篇入门级的Class文章
Mar 19 PHP
删除无限分类并同时删除它下面的所有子分类的方法
Aug 08 PHP
php和javascript之间变量的传递实现代码
Dec 19 PHP
解析如何通过PHP函数获取当前运行的环境 来进行判断执行逻辑(小技巧)
Jun 25 PHP
php中apc缓存使用示例
Dec 25 PHP
php中addslashes函数与sql防注入
Nov 17 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
Oct 10 PHP
PHP多进程通信-消息队列使用
Mar 08 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 PHP
php实现图片压缩处理
Sep 09 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
Syphon 秘笈
2021/03/03 冲泡冲煮
php中并发读写文件冲突的解决方案
2013/10/25 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
jQuery EasyUI 的EasyLoader功能介绍
2010/09/12 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
2016/10/12 Javascript
关于js函数解释(包括内嵌,对象等)
2016/11/20 Javascript
详解jQuery的表单验证插件--Validation
2016/12/21 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
Vue.js添加组件操作示例
2018/06/13 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
2020/01/03 Javascript
JS实现音乐钢琴特效
2020/01/06 Javascript
浅析vue cli3 封装Svgicon组件正确姿势(推荐)
2020/04/27 Javascript
[10:24]郎朗助力完美“圣”典,天籁交织奏响序曲
2016/12/18 DOTA
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
2018/12/03 Python
Python处理session的方法整理
2019/08/29 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
2020/03/10 Python
Python无损压缩图片的示例代码
2020/08/06 Python
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
国际知名军事风格休闲装品牌:Alpha Industries(阿尔法工业)
2017/05/24 全球购物
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
大专自我鉴定范文
2013/10/23 职场文书
通信生自我鉴定
2014/01/18 职场文书
小学教师办公室制度
2014/02/03 职场文书
财务部绩效考核方案
2014/05/04 职场文书
教师个人年终总结
2015/02/11 职场文书
Python多个MP4合成视频的实现方法
2021/07/16 Python