php封装图片上传,PHP文件上传封装
文件上传封装
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文件上传封装相关推荐
- java 图片上传_java web图片上传和文件上传实例
本篇文章主要介绍了java web图片上传和文件上传实例,具有一定的参考价值,有需要的可以了解一下. 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多 ...
- java web文件上传详解_java web图片上传和文件上传实例详解
java web图片上传和文件上传 图片上传和文件上传本质上是一样的,图片本身也是文件.文件上传就是将图片上传到服务器,方式虽然有很多,但底层的实现都是文件的读写操作. 注意事项 1.form表单一定 ...
- 图片和视频的上传(文件上传通用)
流程如下: 1.先引入el-upload 2.调用上传前事件 3.上传前事件中将file文件转formData 4.调用后端oss接口上传文件 5.上传完成后回显数据 6.点击图片/视频预览 图片和视 ...
- java文件上传_Java文件上传细讲
什么是文件上传? 文件上传就是把用户的信息保存起来. 为什么需要文件上传? 在用户注册的时候,可能需要用户提交照片.那么这张照片就应该要进行保存. 上传组件(工具) 为什么我们要使用上传工具? 为啥我 ...
- php 超过100m文件上传,科技常识:apache+php上传大文件以上传100M为例
科技常识:apache+php上传大文件以上传100M为例 2021-03-19 18:54:57 今天小编跟大家讲解下有关apache+php上传大文件以上传100M为例 ,相信小伙伴们对这个话题应 ...
- tp5封装腾讯云cos文件上传sdk
第一步: 使用命令安装sdk到框架vendor目录里 composer require tencentcloud/tencentcloud-sdk-php 第二步:在application/commo ...
- themyleaf 图片上传_javaEE --springboot #实现图片上传和回显 #单文件上传 #多文件上传 #ajax异步文件上传 (非常详细,从创建项目开始)...
实现文件上传和回显 1.新建一个SpringBoot项目,选择 Spring Web 和 thymeleaf 依赖 .pow.xml文件下的依赖如下 2.根据下图,创建如下文件 3.直接上代码 配置文 ...
- Java做图片上传、文件上传、 批量上传、 Base64图片上传 。附上源码
Java做文件上传.图片上传后台方法 利用Springboot快速搭建项目环境 项目源码已经上传到码云:https://gitee.com/jack_party/upload .喜欢的朋友可以支持一下 ...
- Java进阶学习第十六天(Struts框架:配置、数据处理、自动封装、日期类型转换、文件上传)
一.Struts2配置 1.Struts2的Action开发的几种方式 ① 方式1:继承ActionSupport(一般使用方法) public class UserAction extends Ac ...
最新文章
- 堆晶结构_橄榄岩的特殊问题
- 让静态对象来维护你的数据
- Unity3D - UGUI的手动搭建
- 项目管理的测试版发布
- Python三:面向对象 之 类的封装
- JAVA之多线程概念及其几种实现方法优劣分析
- mysql 压测结果_用mysqlslap压测mysql
- 软件过程之美 : 软件配置管理策略及主流工具实战
- 前端架构设计的方法论
- 噪点测试软件 DeadPixelTest 使用方法
- AWVS12搭建-Ubuntu
- web攻击:XSS跨站脚本
- A股上市公司MSCI指数和ESG评级效果(2010-2021年)
- android第三方拨号盘,Android开发-教你如何使用拨号盘
- 产生随机数——起名神器
- 关于终止多个for select循环嵌套的问题
- 微信域名防红是怎么做出来的,原理是什么?_域名微信防封
- 安装群晖系统入门图文教程
- 【bat】批处理教程之for的/f参数
- 用Photoshop画气泡