PHP实现上传多文件示例代码
发布时间 - 2026-01-10 23:11:02 点击率:次上传多文件

1.在对多文件信息进行操作前,需要构建文件信息,通过buildInfo函数将三维数组转换成便于文件操作的二维数组。
function buildInfo(){
$i = 0;
foreach ($_FILES as $v){
//判断是否是单文件
if(is_string($v['name'])){
$files[$i] = $v;
$i++;
}else{
//多文件
foreach ($v['name'] as $key => $value){
$files[$i]['name'] = $value;
$files[$i]['size'] = $v['size'][$key];
$files[$i]['tmp_name'] = $v['tmp_name'][$key];
$files[$i]['type'] = $v['type'][$key];
$files[$i]['error'] = $v['error'][$key];
$i++;
}
}
}
return $files;
}
单文件和多文件的判断在于文件数组的类型,单文件(二维数组)、多文件(三维数组)。
2.文件上传函数及参数
复制代码 代码如下:
function uploadFiles($path = "uploads", $allowExt = array("jpg", "gif", "png", "wbmp"), $maxSize = 1048576, $imgFlag = true)
path,保存目录。allowExt,允许扩展名数组。maxSize最大上传文件大小。imgFlag,图片文件标识符。
3.判断保存文件的目录是否存在
if(!file_exists($path)){
mkdir($path, 0777, true);
}
4.传入构建好的文件信息,保存到files
$i = 0; $files = buildInfo();
5.判断文件的error类型
foreach ($files as $file){
if($file['error'] == UPLOAD_ERR_OK){
}else{
switch ($file['error']){
case 1:
$mes = "超过配置文件上传文件大小";
break;
case 2:
$mes = "超过了表单设置";
break;
case 3:
$mes = "文件部分被上传";
break;
case 4:
$mes = "没有文件上传";
break;
case 6:
$mes = "没找到临时目录";
break;
case 7:
$mes = "文件不可写";
break;
case 8:
$mes = "由于PHP的扩展程序中断了文件上传";
break;
}
6.限制文件类型
if($file['error'] == UPLOAD_ERR_OK){
$ext = getExt($file['name']);
if(!in_array($ext, $allowExt)){
exit("非法文件类型");
}
7.限制是否为真的图片类型
if($imgFlag){
if(!getimagesize($file['tmp_name'])){
exit("不是真的图片类型");
}
}
8.判断文件大小
if($file['size'] > $maxSize){
exit("文件过大");
}
9.判断文件是否通过post上传
if(!is_uploaded_file($file[‘tmp_name'])){
exit(“文件不是通过HTTP POST上传”);
}
10.重命名文件(唯一且不重复)并保存到目标目录
$filename = getUniName().".".$ext;
$destination = $path."/".$filename;
if(move_uploaded_file($file['tmp_name'], $destination)){
$mes = "文件上传成功";
$file['name'] = $filename;
unset($file['error'], $file['tmp_name']);
$uploadedFiles[$i] = $file;
$i++;
}
重写文件信息数组中的name,删除变量file[‘error']和file[‘tmp_name']。最后将成功上传的文件保存到uploadedFiles数组中。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# php上传多个文件
# php多文件上传例子
# php多文件上传代码
# 简单PHP上传图片、删除图片实现代码
# PHP文件上传实例详解!!!
# 简单的PHP图片上传程序
# PHP 上传文件大小限制
# PHP 图片文件上传实现代码
# php 文件上传实例代码
# php上传文件中文文件名乱码的解决方法
# 两种php实现图片上传的方法
# PHP实现视频文件上传完整实例
# 上传
# 文件上传
# 组中
# 扩展名
# 重写
# 在对
# 过大
# 表单
# 转换成
# 大家多多
# 是否存在
# 不是真的
# 重命名
# 并保存
# 判断是否
# 保存文件
# 超过了
# gif
# move_uploaded_file
# return
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
Laravel如何构建RESTful API_Laravel标准化API接口开发指南
JS弹性运动实现方法分析
成都网站制作公司哪家好,四川省职工服务网是做什么用?
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
无锡营销型网站制作公司,无锡网选车牌流程?
如何快速搭建高效可靠的建站解决方案?
如何用VPS主机快速搭建个人网站?
详解Huffman编码算法之Java实现
Laravel用户密码怎么加密_Laravel Hash门面使用教程
Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
javascript如何操作浏览器历史记录_怎样实现无刷新导航
打造顶配客厅影院,这份100寸电视推荐名单请查收
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
如何在Tomcat中配置并部署网站项目?
如何用好域名打造高点击率的自主建站?
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
如何快速搭建高效WAP手机网站?
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
Laravel如何处理文件下载请求?(Response示例)
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
如何在建站之星绑定自定义域名?
如何快速搭建二级域名独立网站?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
香港服务器WordPress建站指南:SEO优化与高效部署策略
如何快速生成ASP一键建站模板并优化安全性?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】
浅述节点的创建及常见功能的实现
香港网站服务器数量如何影响SEO优化效果?
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
Laravel storage目录权限问题_Laravel文件写入权限设置
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
如何用景安虚拟主机手机版绑定域名建站?
如何在香港免费服务器上快速搭建网站?
如何用wdcp快速搭建高效网站?
lovemo网页版地址 lovemo官网手机登录
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
Laravel怎么自定义错误页面_Laravel修改404和500页面模板
Win11关机界面怎么改_Win11自定义关机画面设置【工具】

