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获取Google AJAX Search API 数据的代码
Mar 12 PHP
比较全面的PHP数组的使用方法小结
Sep 23 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
php基于mcrypt的加密解密实例
Oct 27 PHP
php对象和数组相互转换的方法
May 12 PHP
PHP实现事件机制实例分析
Jun 26 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
php中让人头疼的浮点数运算分析
Oct 10 PHP
超强多功能php绿色集成环境详解
Jan 25 PHP
PHP基于ICU扩展intl快速实现汉字转拼音及按拼音首字母分组排序的方法
May 03 PHP
thinkPHP实现的联动菜单功能详解
May 05 PHP
Laravel5.4框架中视图共享数据的方法详解
Sep 05 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
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
JQuery实现自定义对话框的代码
2008/06/15 Javascript
Javascript 按位与运算符 (&amp;)使用介绍
2014/02/04 Javascript
js加入收藏夹代码(兼容ie/ff/op)
2014/05/16 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
jQuery关键词说明插件cluetip使用指南
2015/04/21 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
vue中element组件样式修改无效的解决方法
2018/02/03 Javascript
Vue自定义指令实现checkbox全选功能的方法
2018/02/28 Javascript
关于vue状态过渡transition不起作用的原因解决
2019/04/09 Javascript
JavaScript ECMA-262-3 深入解析(二):变量对象实例详解
2020/04/25 Javascript
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
Python数据结构之栈、队列的实现代码分享
2017/12/04 Python
python批量修改文件编码格式的方法
2018/05/31 Python
详解python里的命名规范
2018/07/16 Python
python单例模式实例解析
2018/08/28 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
Python脚本利用adb进行手机控制的方法
2019/07/08 Python
django 基于中间件实现限制ip频繁访问过程详解
2019/07/30 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
python函数定义和调用过程详解
2020/02/09 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
阿根廷票务网站:StubHub阿根廷
2018/04/13 全球购物
MYSQL支持事务吗
2013/08/09 面试题
应届生护士求职信
2013/11/01 职场文书
预备党员党校学习自我评价分享
2013/11/12 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
礼貌问候语大全
2015/11/10 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
读《解忧杂货店》有感:请相信一切都是最好的安排
2019/11/07 职场文书