文件上传封装

include 'uploadone.php';

header("Content-type: text/html; charset=utf-8");

//封装获取文件名后缀

function getExt($fileName){

return strtolower(pathinfo($fileName,PATHINFO_EXTENSION));

}

//获取唯一文件名

function getUniname(){

return md5(uniqid(microtime(true),true));

}

//处理多文件上传数据

function getFiles(){

$i=0;

foreach ($_FILES as $file){

if(is_string($file['name'])){

$files[$i]=$file;

$i++;

}elseif (is_array($file['name'])){

//循环把没一项的值拿出来合并

foreach ($file['name'] as $key=>$val){

$files[$i]['name']=$file['name'][$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 uploadFile($fileInfo,$path='uploads',$maxSize=1048576,$allowExt=array('jpg','jpeg','png','gif'),$flag=true){

if($fileInfo['error']===0){

//获取文件名后缀

$ext=getExt($fileInfo['name']);

//检测上传文件大小

if($fileInfo['size']>$maxSize) $res['msg']=$fileInfo['name'].'上传文件过大';

//检测允许上传文件的类型

if(!in_array($ext,$allowExt)) $res['msg']=$fileInfo['name'].'文件上传类型错误!!';

//检测是否是图片

//$flag=true;

if($flag){

if(@!getimagesize($fileInfo['tmp_name'])){

//var_dump(getimagesize($fileInfo['tmp_name']));

$res['msg']=$fileInfo['name'].'不是图片类型';

}

}

//检测文件是否是通过HTTP POST上传的

//is_uploaded_file — 判断文件是否是通过 HTTP POST 上传的

if(!is_uploaded_file($fileInfo['tmp_name'])) $res['msg']='文件不是通过HTTP POST上传的';

if(isset($res)) return $res;

$uniName=getUniname();

$path='./uploads';

if(!file_exists($path)){

mkdir($path,0777,true);

chomd($path,0777);

}

$destination=$path.'/'.$uniName.'.'.$ext;

if(!move_uploaded_file($fileInfo['tmp_name'],$destination)){

$res['msg']=$fileInfo['name'].'文件移动失败';

}

$res['msg']=$fileInfo['name'].'文件上传成功';

$res['dest']=$destination;

return $res;

}else{

switch($fileInfo['error']){

case 1:

$res['msg']='上传的文件超过PHP upload_max_fizesize的值';

break;

case 2:

$res['msg']='超过表单MAX_FIZE_SIZE限制大小';

break;

case 3:

$res['msg']= '文件部分被上传';

break;

case 4:

$res['msg']= '没有选择上传文件';

break;

case 6:

$res['msg']= '没有找到临时目录';

break;

case 7:

case 8:

$res['msg']= '系统错误';

break;

}

return $res;

}

}

php封装图片上传,PHP文件上传封装相关推荐

  1. java 图片上传_java web图片上传和文件上传实例

    本篇文章主要介绍了java web图片上传和文件上传实例,具有一定的参考价值,有需要的可以了解一下. 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多 ...

  2. java web文件上传详解_java web图片上传和文件上传实例详解

    java web图片上传和文件上传 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多,但底层的实现都是文件的读写操作. 注意事项 1.form表单一定 ...

  3. 图片和视频的上传(文件上传通用)

    流程如下: 1.先引入el-upload 2.调用上传前事件 3.上传前事件中将file文件转formData 4.调用后端oss接口上传文件 5.上传完成后回显数据 6.点击图片/视频预览 图片和视 ...

  4. java文件上传_Java文件上传细讲

    什么是文件上传? 文件上传就是把用户的信息保存起来. 为什么需要文件上传? 在用户注册的时候,可能需要用户提交照片.那么这张照片就应该要进行保存. 上传组件(工具) 为什么我们要使用上传工具? 为啥我 ...

  5. php 超过100m文件上传,科技常识:apache+php上传大文件以上传100M为例

    科技常识:apache+php上传大文件以上传100M为例 2021-03-19 18:54:57 今天小编跟大家讲解下有关apache+php上传大文件以上传100M为例 ,相信小伙伴们对这个话题应 ...

  6. tp5封装腾讯云cos文件上传sdk

    第一步: 使用命令安装sdk到框架vendor目录里 composer require tencentcloud/tencentcloud-sdk-php 第二步:在application/commo ...

  7. themyleaf 图片上传_javaEE --springboot #实现图片上传和回显 #单文件上传 #多文件上传 #ajax异步文件上传 (非常详细,从创建项目开始)...

    实现文件上传和回显 1.新建一个SpringBoot项目,选择 Spring Web 和 thymeleaf 依赖 .pow.xml文件下的依赖如下 2.根据下图,创建如下文件 3.直接上代码 配置文 ...

  8. Java做图片上传、文件上传、 批量上传、 Base64图片上传 。附上源码

    Java做文件上传.图片上传后台方法 利用Springboot快速搭建项目环境 项目源码已经上传到码云:https://gitee.com/jack_party/upload .喜欢的朋友可以支持一下 ...

  9. Java进阶学习第十六天(Struts框架:配置、数据处理、自动封装、日期类型转换、文件上传)

    一.Struts2配置 1.Struts2的Action开发的几种方式 ① 方式1:继承ActionSupport(一般使用方法) public class UserAction extends Ac ...

最新文章

  1. 堆晶结构_橄榄岩的特殊问题
  2. 让静态对象来维护你的数据
  3. Unity3D - UGUI的手动搭建
  4. 项目管理的测试版发布
  5. Python三:面向对象 之 类的封装
  6. JAVA之多线程概念及其几种实现方法优劣分析
  7. mysql 压测结果_用mysqlslap压测mysql
  8. 软件过程之美 : 软件配置管理策略及主流工具实战
  9. 前端架构设计的方法论
  10. 噪点测试软件 DeadPixelTest 使用方法
  11. AWVS12搭建-Ubuntu
  12. web攻击:XSS跨站脚本
  13. A股上市公司MSCI指数和ESG评级效果(2010-2021年)
  14. android第三方拨号盘,Android开发-教你如何使用拨号盘
  15. 产生随机数——起名神器
  16. 关于终止多个for select循环嵌套的问题
  17. 微信域名防红是怎么做出来的,原理是什么?_域名微信防封
  18. 安装群晖系统入门图文教程
  19. 【bat】批处理教程之for的/f参数
  20. 用Photoshop画气泡

热门文章

  1. oui unknown中的oui是什么?
  2. 学python分析双色球_我通过使用Python分析了80多个工作拒绝而学到的东西
  3. 在ubuntu16.04上安装java和elastic search
  4. Homebrew更换源
  5. 离线安装python环境
  6. 自然语言处理实践Task1
  7. Labview 模型导入Veristand问题
  8. Java-时间复杂度和空间复杂度
  9. 2020 年 Flink 最佳学习路线,学习的路上,你,并不孤单
  10. Torch 学习总结