1 /**
 2   * [Upload 上传文件]
 3   * @param string $save_path  [路径]
 4   * @param array  $allow_type [允许上传类型]
 5   */
 6  function Upload($save_path = './uploads', $allow_type = array('image','text')){
 7
 8
 9
10  date_default_timezone_set('PRC');
11
12 //  1判断错误
13        if (empty($_FILES)) {
14            die('不能超过20M以上');
15
16        }
17        $key =key($_FILES);
18      // 2判断error错误号, 如果error > 0 ,则说明上传文件出错, 只有error = 0才是上传成功
19      if ($_FILES[$key]['error'][0]>0) {
20          switch ($_FILES[$key]['error']) {
21              case '1':
22              echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值';
23                  break;
24              case '2':
25              echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值';
26                  break;
27              case '3':
28              echo '文件只有部分被上传';
29                  break;
30              case '4':
31              echo '没有文件被上传';
32                  break;
33              case '6':
34              echo '找不到临时文件夹';
35                  break;
36              case '7':
37              echo '文件写入失败';
38                  break;
39
40
41          }
42
43      }
44 //
45 //  2判断文件是不是通过 http post协议上传
46
47     if (!is_uploaded_file( $_FILES[ $key ]['tmp_name'][0])) {
48          die('请正常上传文件,不要搞事情');
49      }
50 //  3判断文件类型
51      $str =$_FILES[ $key]['type'][0];    // video/mp4
52 //      获取类型
53      $type =strtok($str,'/');
54
55 //      获取后缀名(扩展名)
56      $suffix = ltrim(strstr($str, '/'),'/');
57      // var_dump($suffix);
58 //      自定义允许类型组
59 //  判断type是否 allow_type 里面
60          if (!in_array($type,$allow_type)) {
61
62              die('不合法的文件类型');
63          }
64
65 //  4 设置 上传之后的文件名   20170320xx.jpg
66     $filename =date('Ymd').uniqid().'.'.$suffix;
67     // var_dump($filename);
68 //  5 判断存储目录
69  $filepath =$save_path.date('Y/m/d/');
70  // var_dump($filepath);
71      if (!file_exists($filepath)) {
72
73              mkdir($filepath,'0777',true);
74      }
75
76 //  6 移动文件到存储目录
77      if (move_uploaded_file($_FILES[$key]['tmp_name'][0], $filepath.$filename)) {
78      echo '上传文件成功';
79      echo '<meta http-equiv="refresh" content="3; url='.$_SERVER['HTTP_REFERER'].'">';
80      }else{
81
82          echo '上传文件失败';
83      echo '<meta http-equiv="refresh" content="3; url='.$_SERVER['HTTP_REFERER'].'">';
84      }
85
86
87 }
88     echo Upload();

View Code

转载于:https://www.cnblogs.com/tj1234/p/6602238.html

笔记2 自定义文件上传相关推荐

  1. 如何使用HTML5,JavaScript和Bootstrap构建自定义文件上传器

    by Prashant Yadav 通过Prashant Yadav 如何使用HTML5,JavaScript和Bootstrap构建自定义文件上传器 (How to build a custom f ...

  2. CSS自定义文件上传按钮

    原文:CSS自定义文件上传按钮 今天一同事问我文件上传按钮的问题,情况是这样的,他页面上有3个按钮,分为左中右三个,左边的位按钮甲,右边的位按钮乙,而中间的就是个文件选择按钮,情况大概是这个样子的: ...

  3. Servlet笔记十(文件上传和下载)

    本栏博客目录 Serlvet笔记一(Servlet基础) Servlet笔记二(请求和响应) Servlet笔记三(会话及其会话技术) Servlet笔记四(JSP技术) Servlet笔记五(EL表 ...

  4. WordPress自定义文件上传路径的方法

    自WordPress3.5版本开始,隐藏了后台媒体设置页面的"默认上传路径和文件的完整URL地址"选项,可以通过下面的代码将该选项调出来.WordPress自定义文件上传路径的方法 ...

  5. vue-tinymce的使用,粘贴文件上传,自定义文件上传,改base64转换成上传到服务器返回url

    vue-tinymce的使用,粘贴文件上传,自定义文件上传,改base64转换成上传到服务器返回url vue中使用 <vue-tinymcev-model="itemForm.con ...

  6. B站小迪安全笔记第二十天-文件上传之基础过滤方式

    什么是文件上传漏洞? 凡是存在文件上传的地方它均有可能存在文件上传漏洞,关于上传文件操作的时候对方代码写的是否完整.是否安全,一旦疏忽了某个地方可能会造成文件上传漏洞. 文件上传漏洞由哪些危害? 文件 ...

  7. Laravel学习笔记4,文件上传,分页,验证码,数据表和迁移

    目录 一.文件上传 二.数据分页 三.验证码 Return Image Return URL Return HTML 六.响应处理 一.文件上传 在laravel, 里面实现文件的上传是很简单的,压根 ...

  8. 【信安学习笔记三】文件上传

    个人学习参考用笔记 目录 前言 一.文件上传 **定义** **危害** **查找及判断** **分类** 二.验证与绕过 前端防护 后端防护 (一)黑名单 (二)白名单 (三)内容及其他 三.漏洞 ...

  9. 第三十二天学习笔记-web漏洞-文件上传的条件竞争、.htaccess文件与.user.ini文件使用前提、二次渲染

    目录 二次渲染原理 绕过方法 htaccess配置文件 .user.ini 二次渲染原理 在我们上传文件后,网站会对图片进行二次处理(格式.尺寸,保存,删除 要求等),服务器会把里面的内容进行替换更新 ...

最新文章

  1. Scala implement Comb Sort
  2. Java数据结构和算法:图
  3. 10月网民上网高峰时段为晚上8点 比例升至6.64%
  4. Halcon初学者知识【5】画若干个圆
  5. Systick 延时函数详解
  6. java http请求实现_java工程实现http请求接口
  7. 在Android中实现异步任务
  8. 常用的消息摘要算法小总结
  9. SQL那些事儿(十)--oracle主键、唯一键与索引
  10. 身份证前6位城市代码
  11. 奇迹单机版服务器修改,大天使之剑奇迹网页游戏 一键服务端单机版/架设教程/修改方法...
  12. 神经网络和决策树,神经网络 选股
  13. 爆销产品标题怎么写_抖音爆火标题文案模板
  14. iOS13新增SceneDelegate文件适配
  15. Spring学习(二)IOC
  16. 数据分析中的漏斗模型
  17. CSS box-shadow实现按钮悬浮效果
  18. 如何给微信公众号增加留言功能?
  19. HTML期末作业-我的大学生活
  20. Lorem在HTML的使用

热门文章

  1. Timer计时不准确的解决方案 每次都重新调整,修正误差
  2. flex4实现图片的动态切换
  3. 《系统分析与设计方法》 第8章 数据建模
  4. 调试H3C MSR 20-20 PPPOE拨号
  5. [20180806]tune2fs调整保留块百分比.txt
  6. Python——阶段总结(一)
  7. SeciLog 1.3.1 发布,增加了全屏配置,自定义预警等新功能
  8. 23种设计模式的基本介绍
  9. Quartz.net官方开发指南 第十课: 配置、资源使用以及SchedulerFactory
  10. 金融类APP不得强制读取通讯录