笔记2 自定义文件上传
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 自定义文件上传相关推荐
- 如何使用HTML5,JavaScript和Bootstrap构建自定义文件上传器
by Prashant Yadav 通过Prashant Yadav 如何使用HTML5,JavaScript和Bootstrap构建自定义文件上传器 (How to build a custom f ...
- CSS自定义文件上传按钮
原文:CSS自定义文件上传按钮 今天一同事问我文件上传按钮的问题,情况是这样的,他页面上有3个按钮,分为左中右三个,左边的位按钮甲,右边的位按钮乙,而中间的就是个文件选择按钮,情况大概是这个样子的: ...
- Servlet笔记十(文件上传和下载)
本栏博客目录 Serlvet笔记一(Servlet基础) Servlet笔记二(请求和响应) Servlet笔记三(会话及其会话技术) Servlet笔记四(JSP技术) Servlet笔记五(EL表 ...
- WordPress自定义文件上传路径的方法
自WordPress3.5版本开始,隐藏了后台媒体设置页面的"默认上传路径和文件的完整URL地址"选项,可以通过下面的代码将该选项调出来.WordPress自定义文件上传路径的方法 ...
- vue-tinymce的使用,粘贴文件上传,自定义文件上传,改base64转换成上传到服务器返回url
vue-tinymce的使用,粘贴文件上传,自定义文件上传,改base64转换成上传到服务器返回url vue中使用 <vue-tinymcev-model="itemForm.con ...
- B站小迪安全笔记第二十天-文件上传之基础过滤方式
什么是文件上传漏洞? 凡是存在文件上传的地方它均有可能存在文件上传漏洞,关于上传文件操作的时候对方代码写的是否完整.是否安全,一旦疏忽了某个地方可能会造成文件上传漏洞. 文件上传漏洞由哪些危害? 文件 ...
- Laravel学习笔记4,文件上传,分页,验证码,数据表和迁移
目录 一.文件上传 二.数据分页 三.验证码 Return Image Return URL Return HTML 六.响应处理 一.文件上传 在laravel, 里面实现文件的上传是很简单的,压根 ...
- 【信安学习笔记三】文件上传
个人学习参考用笔记 目录 前言 一.文件上传 **定义** **危害** **查找及判断** **分类** 二.验证与绕过 前端防护 后端防护 (一)黑名单 (二)白名单 (三)内容及其他 三.漏洞 ...
- 第三十二天学习笔记-web漏洞-文件上传的条件竞争、.htaccess文件与.user.ini文件使用前提、二次渲染
目录 二次渲染原理 绕过方法 htaccess配置文件 .user.ini 二次渲染原理 在我们上传文件后,网站会对图片进行二次处理(格式.尺寸,保存,删除 要求等),服务器会把里面的内容进行替换更新 ...
最新文章
- Scala implement Comb Sort
- Java数据结构和算法:图
- 10月网民上网高峰时段为晚上8点 比例升至6.64%
- Halcon初学者知识【5】画若干个圆
- Systick 延时函数详解
- java http请求实现_java工程实现http请求接口
- 在Android中实现异步任务
- 常用的消息摘要算法小总结
- SQL那些事儿(十)--oracle主键、唯一键与索引
- 身份证前6位城市代码
- 奇迹单机版服务器修改,大天使之剑奇迹网页游戏 一键服务端单机版/架设教程/修改方法...
- 神经网络和决策树,神经网络 选股
- 爆销产品标题怎么写_抖音爆火标题文案模板
- iOS13新增SceneDelegate文件适配
- Spring学习(二)IOC
- 数据分析中的漏斗模型
- CSS box-shadow实现按钮悬浮效果
- 如何给微信公众号增加留言功能?
- HTML期末作业-我的大学生活
- Lorem在HTML的使用