首页 后端开发 php教程 PHP单文件、多个单文件、多文件上传函数的打包

PHP单文件、多个单文件、多文件上传函数的打包

Jun 13, 2016 pm 12:19 PM
fileinfo name quot

PHP单文件、多个单文件、多文件上传函数的封装

//表单://s.php//要在选择上传文件时能一次选择多个文件,那么就加multiple="multiple" ,还有注意下name="myFile1"和name="myFile[]"的区别,单文件、多文件上传.<meta charset="utf-8"><title>无标题文档</title>
登录后复制





//上传函数的封装://ss.php$val){ $files[$i]['name']=$file['name'][$key]; $files[$i]['type']=$file['type'][$key]; $files[$i]['tmp_name']=$file['tmp_name'][$key]; $files[$i]['error']=$file['error'][$key]; $files[$i]['size']=$file['size'][$key]; $i++; } } } return $files;}//针对于单文件、多个单文件、多文件的上传//默认允许上传的文件只为图片类型,并且只有这些图片类型:$allowExt=array('jpeg','jpg','png','gif');并且检查上传的文件是否为真实的图片$flag=true//默认上传保存的文件夹为本地的'uploads'文件夹,允许上传文件的大小最大为2Mfunction uploadFile($fileInfo,$path='./uploads',$flag=true,$allowExt=array('jpeg','jpg','png','gif'),$maxSize=2097152){ //判断错误号 if($fileInfo['error']===UPLOAD_ERR_OK){ //检测上传文件的大小 if($fileInfo['size']>$maxSize){ $res['mes']=$fileInfo['name'].'上传文件过大'; } $ext=getExt($fileInfo['name']); //检测上传文件的文件类型 if(!in_array($ext,$allowExt)){ $res['mes']=$fileInfo['name'].'非法文件类型'; } //检测是否是真实的图片类型 if($flag){ if(!getimagesize($fileInfo['tmp_name'])){ $res['mes']=$fileInfo['name'].'不是真实图片类型'; } } //检测文件是否是通过HTTP POST上传上来的 if(!is_uploaded_file($fileInfo['tmp_name'])){ $res['mes']=$fileInfo['name'].'文件不是通过HTTP POST方式上传上来的'; } if( $res ) return $res; //如果要不显示错误信息的话,用if( @$res ) return $res; //$path='./uploads'; //如果没有这个文件夹,那么就创建一 if(!file_exists($path)){ mkdir($path,0777,true); chmod($path,0777); } //新文件名唯一 $uniName=getUniName(); $destination=$path.'/'.$uniName.'.'.$ext; [email protected],也可以删除 if([email protected]_uploaded_file($fileInfo['tmp_name'],$destination)){ $res['mes']=$fileInfo['name'].'文件移动失败'; } $res['mes']=$fileInfo['name'].'上传成功'; $res['dest']=$destination; return $res; }else{ //匹配错误信息 //注意!错误信息没有5 switch($fileInfo['error']){ case 1: $res['mes'] = '上传文件超过了PHP配置文件中upload_max_filesize选项的值'; break; case 2: $res['mes'] = '超过了HTML表单MAX_FILE_SIZE限制的大小'; break; case 3: $res['mes'] = '文件部分被上传'; break; case 4: $res['mes'] = '没有选择上传文件'; break; case 6: $res['mes'] = '没有找到临时目录'; break; case 7: $res['mes'] = '文件写入失败'; break; case 8: $res['mes'] = '上传的文件被PHP扩展程序中断'; break; } return $res; }}?>//common.ss.php//上传后文件的操作:'; $uploadFiles[]=$res['dest'];//如果要不显示错误信息的话,用@$uploadFiles[]=$res['dest'];}$uploadFiles=array_values(array_filter($uploadFiles));//这样便于保存到数据库print_r($uploadFiles);//打印查看上传保存的结果?>
2楼ltx06昨天 20:53
『PHP单文件上传原理及上传函数的封装』和n『PHP单文件、多个单文件、多文件上传函数的封装』都是看慕课网视频整理出来的,加上了我个人的注释;在网上搜索了好多关于php文件上传的,但是还是自己整理时的最清晰
1楼ltx06昨天 20:44
对于为什么要检测是否为真实的图片,因为,用户可以通过建一个txt文件,然后修改其后缀为.jpg/png等,从而为一个图片文件,但是,这不是一个真实的图片~
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

怎么安装php fileinfo扩展 怎么安装php fileinfo扩展 Sep 12, 2021 am 11:36 AM

安装php fileinfo扩展的方法:1、找到PHP安装源目录;2、解析使用phpize释放fileinfo模块;3、编译安装;4、重启PHP即可。

php拿不到name怎么办 php拿不到name怎么办 Nov 24, 2022 am 09:56 AM

php拿不到name是因为当表单元素的name和id的值不一样的时候,浏览器是不能识别的,其解决办法:1、检查部分表单元素和框架元素是否用了name;2、检查只能赋ID不能赋name的元素;3、针对多选框checkbox,可使用“join(',', $__POST['name'])”组成数据。

Vue3中setup怎么添加name Vue3中setup怎么添加name May 13, 2023 am 09:40 AM

Vue3中name有什么用呢?1.在递归组件的时候需要定义name2.配合keep-aliveincludeexclude可以缓存组件3.在Vue有报错或者调试的时候可以看到组件的nameVue3定义name1.自动生成只要在script开启setup语法糖模式单文件组件会自动根据文件名生成对应的name选项例如Tree.vue那他的name就是Tree自动生成,这样做有一个弊端如果想修改name需要修改组件名称如果有地方import该组件需要一并修改。2.在开启一个script用来定义name

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没有关问题 Jun 13, 2016 am 10:15 AM

不用数据库来实现用户的简单的下载,代码如下,但是却不能下载,请高手找下原因,文件路劲什么的没问题。

图片消失怎么解决 图片消失怎么解决 Apr 07, 2024 pm 03:02 PM

图片消失如何解决先是图片文件上传$file=$_FILES['userfile'];  if(is_uploaded_file($file['tmp_name'])){$query=mysql_query("INSERT INTO gdb_banner(image_src ) VALUES ('images/{$file['name'

图片消失怎么解决 图片消失怎么解决 Jun 13, 2016 am 10:09 AM

图片消失如何解决先是图片文件上传$file=$_FILES['userfile'];  if(is_uploaded_file($file['tmp_name'])){$query=mysql_query("INSERT INTO gdb_banner(image_src ) VALUES ('images/{$file['name'

为什么小弟我在php上写的这个代码,在浏览器上什么都不显示 为什么小弟我在php上写的这个代码,在浏览器上什么都不显示 Jun 13, 2016 am 10:24 AM

为什么我在php上写的这个代码,在浏览器上什么都不显示啊

See all articles