博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP原生文件上传(单文件多文件均可)简单案例
阅读量:5167 次
发布时间:2019-06-13

本文共 3236 字,大约阅读时间需要 10 分钟。

 

本案例共三个文件,目录结构如下图所示:

do_action1.php(前台页面)页面的代码如下:

";//print_r($_FILES);require_once "upload_function1.php";$files=getFiles();//print_r($files);foreach($files as $fileInfo){ $res=uploadFile($fileInfo); echo $res['mes'],'
'; //$uploadFiles[]=@$res['dest']; if(isset($res['dest'])) { $uploadFiles[]=$res['dest']; }else{ continue; } }//$uploadFiles=array_values(array_filter($uploadFiles)); 过滤数组中的空值并从新排序print_r($uploadFiles);

upload.html(后台页面)页面的代码如下:

upload_function1.php(功能函数)页面的代码如下:

$value){ $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;}//得到文件扩展名function getExt($filename){ return strtolower(pathinfo($filename,PATHINFO_EXTENSION));}//产生唯一字符串function getUniName(){ return md5(uniqid(microtime(true),true));}function uploadFile($fileInfo,$uploadPath="uploads",$maxSize=2097152,$flag=false,$allowExt=array("jpeg","jpg","png","gif")){ //$flag=true;//是否检测图片是否是真实的图片类型 $allowExt=array('jpeg','jpg','gif','png'); if($fileInfo['error']==UPLOAD_ERR_OK){ //检测上传文件大小 if($fileInfo['size']>$maxSize){ $res['mes']='上传文件过大'; } //检测上传文件的文件类型 $ext=getExt($fileInfo['name']);//得到上传文件的后缀 if(!in_array($ext,$allowExt)){ $res['res']='非法文件类型'; } if($flag){ if(!getimagesize($fileInfo['tmp_name'])){ $res['mes']='不是真实的图片类型'; } } //检测文件是否是通过HTTP POST上传上来的 if(!is_uploaded_file($fileInfo['tmp_name'])){ $res['mes']='文件不是通过HTTP POST方式上传上来的'; } if(isset($res)) return $res; $path='./uploads'; if(!file_exists($path)){ mkdir($path,0777,true); chmod($path,0777); } $uniName=getUniName(); $destination=$path.'/'.$uniName.'.'.$ext; if(!move_uploaded_file($fileInfo['tmp_name'],$destination)){ $res['mes']=$fileInfo['name'].'文件移动失败'; } $res['mes']=$fileInfo['name'].'上传成功'; $res['dest']=$destination; return $res; }else{ switch($fileInfo['error']){ case 1: $res['mes']="上传文件超出了php配置中upload_max_filesize选项的值"; break; case 2: $res['mes']="超出了表单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']="系统错误"; break; } return $res; }}

本案例最终可以得到上传成功的图片的存储位置以数组方式存储方便后期与数据库对接,稍微改造即可拿去用了!

转载于:https://www.cnblogs.com/xiaogou/p/8972243.html

你可能感兴趣的文章
不小心发现中粮网站的一个bug
查看>>
初看原型---prototype
查看>>
文本三剑客之 Sed
查看>>
20155227《网络对抗》Exp4 恶意代码分析
查看>>
vue echarts
查看>>
iOS 苹果真机鉴定
查看>>
Hive中如何快速的复制一张分区表(包括数据)
查看>>
【软件构造】第二章
查看>>
idea搭建Spring Boot+MyBatis
查看>>
eslint规范
查看>>
安装GUI的Redhat7系统
查看>>
VirtualBox 安装虚拟机Ubuntu, 和主机互ping.
查看>>
Android开发 LevelListDrawable详解
查看>>
数组与字符串相互转换的方法总结
查看>>
Firefly安装说明 与 常见问题
查看>>
WP8:在Unity中使用OpenXLive
查看>>
Unity3d 接入 移动MM支付SDK(2.3) 全攻略
查看>>
ubuntu搭建svn服务器并htpp访问版本库并svn与web同步
查看>>
HTTP协议,Http 常用状态码
查看>>
只能在执行 Render() 的过程中调用 RegisterForEventValidation
查看>>