PHP图片、文件批量上传代码
PHP图片、文件批量上传代码
不管是文件还是图片批量上传我们第一个是在html中做name=userfile[]这种数组变量,在php接受中我们做for ($_i=0; $_i
例子
代码如下 | |
session_start(); <script><br /> $(document).ready(function() {<br /> $('#cont').val($('.file #file').size());<br /> $('#send').eq(0).click(function() {<br /> var filesize=$('.file #file').size();<br /> $('.file').append("<input type='file' name='userfile[]' id='file'/>");<br /> $('#cont').val(filesize+1);<br /> });<br /> });<br /> </script> PHP文件批量上传if ($_GET['up']==up) { //防止重复提交 if ($_SESSION['file']==$_GET['irand']) { $_cont=intval($_POST['cont']); //将file框总数接收并转换成整型 $_size=20000; //设置限制文件大小 $_dir='pdir/'; //文件保存目录 function size($_size) { //判断文件大小是否大于1024bit 如果大于,则将大小取值为KB,以此类推 if ($_size>1024*1024) { return round($_size/1024/1024,2).' MB'; }else if ($_size>1024) { $_size=$_size/1024; return ceil($_size).'KB'; }else { return $_size.' bit'; } } //设置上传图片的类型,设置图片上传大小 $_upfiles = array('image/jpeg','image/pjpeg','image/png','image/x-png','image/gif'); //利用for循环上传文件 for ($_i=0; $_i if (is_array($_upfiles)) { if (!in_array($_FILES['userfile']['type'][$_i],$_upfiles)) { exit('请上传格式为:jpg,png,gif的文件 返回'); } } //判断文件大小 if ($_FILES['userfile']['size'][$_i]>$_size) { exit('上传文件不能超过:'.size($_size)); } //检测文件是否已经上传 if ($_FILES['userfile']['error'][$_i]>0) { switch ($_FILES['userfile']['error'][1]) { case 1: echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值'; break; case 2: echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值'; break; case 3: echo '文件只有部分被上传'; break; case 4: echo '没有文件被上传'; break; case 6: echo '找不到临时文件夹'; break; case 7: echo '文件写入失败'; break; } exit; } //获取文件扩展名 if (!is_dir($_dir)) { mkdir($_dir,0700); } //生成随笔数 $_rand=mt_rand(0,100000); //获取文件扩展名 $_n=explode('.',$_FILES['userfile']['name'][$_i]); //将文件名分割 $_file_len=count($_n); //返回数组长度 //确保获取的扩展名是最后一个.后面的 $_name=$_dir.time().'_'.$_rand.'.'.$_n[$_file_len-1]; //移动文件到指定的目录 if (is_uploaded_file($_FILES['userfile']['tmp_name'][$_i])) { if (!@move_uploaded_file($_FILES['userfile']['tmp_name'][$_i],$_name)) { exit('文件移动失败'); }else { echo '文件上传成功 '; echo '文件路径:'.$_name.' '; echo '文件大小:'.size(filesize($_name)); echo ' 返回继续上传'; } }else { exit('上传的临时文件不存在,无法将文件移动到指定文件夹'); } } //销毁session变量,有几种方法 //第一种,销毁所有session变量:session_destroy(); //第二种:销毁单个如:$_SESSION['file']='' session_destroy(); exit; }else { |
核心原理分析
在多文件上传中我们前台最重要的是
代码如下 | |
|
这几行代码有细节的朋友会发现name="userfile[]"了,这个是以数组存储了,这样我们如果使用js也可以这样增加就可以了,那么在php是如何获取的呢
在多文件上传中php处理是一个关键
代码如下 | |
for ($_i=0; $_i
if (is_uploaded_file($_FILES['userfile']['tmp_name'][$_i])) { |
这里显示很简单我们会看到有一个for,for就是遍历数组,遍历userfile[]数组,然后再由$_FILES['userfile']['tmp_name'][$_i]来获取不同文件图片再进行上传即可,注意[$_i]就是你的多文件上传项了,只是保存在了数组中。

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 是一个开源MVC 框架。它使开发、部署和维护应用程序变得更加容易。 CakePHP 有许多库可以减少大多数常见任务的过载。

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储
