PHP批量上传一次点击选中多个
首先前端部分需要设置好控件,这里使用HTML5 中 input 的新增属性 multiple 可以很好的解决了以往上传多个需要点击多次"上传按钮"的麻烦:
<form action="" method="post" enctype="multipart/form-data">
<input type="file" id="upload_imgs" name="upload_imgs[]" multiple="multiple">
<input type="submit" value="提交上传">
</form>
如果需要在 选中文件后,提交前 告之用户选中的文件个数 可以使用files.length属性,比如:
document.upload_imgs.files.length 即可获取上述表单中的选中文件个数。
接下来是PHP中的处理:
<?php
header("content-type:text/html; charset=utf8");
if(!empty($_FILES)){
//print_r($_FILES['upload_imgs']);exit;
function upload_files($name){
$files = $_FILES[$name];
$k1 = $k2 = array();
foreach($files as $key => $val){
if($key == 'tmp_name'){
$k1 = $val;
}
if($key == 'name'){
$k2 = $val;
}
}
//$filenames 保存移动后的文件名
$filenames = array();
foreach($k1 as $key => $val){
//$rename 获取原始文件名 (不包括后缀名)
$rename = substr($k2[$key],0,strpos($k2[$key],'.'));
//$suffix 文件后缀名
$suffix = substr($k2[$key],strpos($k2[$key],'.'));
//echo md5($rename) . $suffix;exit;
$time = time();
//如果不存在upload文件夹则创建upload文件夹
if(!is_dir('./upload')){
mkdir('./upload');
}
if(!is_dir('./upload/' . date("Y") . "-" . date("m") . "-" . date("d"))){
mkdir('./upload/' . date("Y") . "-" . date("m") . "-" . date("d"));
}
move_uploaded_file($val,'./upload/' . date("Y") . "-" . date("m") . "-" . date("d") . '/' . md5($rename . $time) . $suffix);
$filenames[] = 'upload/' . date("Y") . "-" . date("m") . "-" . date("d") . '/' . md5($rename . $time) . $suffix;
}
print_r($filenames);exit;
// 数组形式返回所上传的文件路径
return $filenames;
}
upload_files('upload_imgs');
}
PHP文件执行 upload_files() 函数后即可获得上传后的文件路径。
这样批量上传就做好了。
欢迎各种方式转载,但请务必注明出处。
PHP批量上传一次点击选中多个的更多相关文章
- 使用KindEditor富文本编辑器,点击批量上传按钮没有选择图片按钮
问题:批量上传没有选择图片按钮
- ux.plup.File plupload 集成 ux.plup.FileLis 批量上传预览
//plupload 集成 Ext.define('ux.plup.File', { extend: 'Ext.form.field.Text', xtype: 'plupFile', alias: ...
- asp.net+swfupload 多图片批量上传(附源码下载)
asp.net的文件上传都是单个文件上传方式,无法执行一次性多张图片批量上传操作,要实现多图片批量上传需要借助于flash,通过flash选取多个图片(文件),然后再通过后端服务进行上传操作. 本次教 ...
- 文件/图片,批量上传【神器】--WebUploader
<system.web> <httpRuntime maxRequestLength="102400" executionTimeout="720&qu ...
- 首页商品图片显示错位,easy-popular批量上传
=============关于zencart批量商品管理的说明================== 首先,安装好批量商品管理模块,设置 /tempEP 目录可写二.确认你已经在后台增加了一些分类目录. ...
- 不带插件 ,自己写js,实现批量上传文件及进度显示
今天接受项目中要完成文件批量上传文件而且还要显示上传进度,一开始觉得这个应该不是很麻烦,当我在做的时候遇到了很多问题,很头疼啊. 不过看了别人写的代码,自己也测试过,发现网上好多都存在一些问题,并不是 ...
- WEB版一次选择多个文件进行批量上传(WebUploader)的解决方案
本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案.见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案. 本人在2013年时使用plupload为核心 ...
- 基于“formData批量上传的多种实现” 的多图片预览、上传的多种实现
前言 图片上传是web项目常见的需求,我基于之前的博客的代码(请戳:formData批量上传的多种实现)里的第三种方法实现多图片的预览.上传,并且支持三种方式添加图片到上传列表:选择图片.复制粘贴图片 ...
- formData批量上传的多种实现
前言 最近项目需要批量上传附件,查了下资料,网上很多但看着一脸懵,只贴部分代码,介绍也不详细,这里记录一下自己的采坑与多种实现,以免以后忘记. 这里先介绍下FormData对象,以下内容摘自:http ...
随机推荐
- 求余区间的求和类问题 离线+线段树 HDU4228
题目大意:给一个数组a,他的顺序是严格的单调增,然后有如下三个操作 ①加入一个val到a数组里面去,加入的位置就是a[i-1]<val<a[i+1] ②删除一个a[i]=val的值 ③查询 ...
- P8 Visible Lattice Points
P8 Visible Lattice Points Time Limit:1000ms, Memory Limit:65536KB Description A lattice point (x ...
- HDU 1213 How Many Tables 并查集 寻找不同集合的个数
题目大意:有n个人 m行数据,每行数据给出两个数A B,代表A-B认识,如果A-B B-C认识则A-C认识,认识的人可以做一个桌子,问最少需要多少个桌子. 题目思路:利用并查集对相互认识的人进行集合的 ...
- zencart 掉炸天的tpl_main_page.php
<?php /** * Common Template - tpl_main_page.php * * @version $Id: tpl_main_page.php 7085 2007-09- ...
- Spring中引入其他配置文件
一.引入其他 模块XML 在Spring的配置文件,有时候为了分模块的更加清晰的进行相关实体类的配置. 比如现在有一个job-timer.xml的配置 <?xml version="1 ...
- Jedis使用示例
http://javacrazyer.iteye.com/blog/1840161 http://www.cnblogs.com/edisonfeng/p/3571870.html
- css3盒模型学习--利用box自适应布局
box-flex是css3新添加的盒子模型属性,它的出现可以解决我们通过N多结构.css实现的布局方式.经典 的一个布局应用就是布局的垂直等高.水平均分.按比例划分. 目前box-flex属性还没 ...
- 使用SQLServer2005插入一条数据时返回当前插入数据的ID
使用SQLServer2005插入一条数据时返回当前插入数据的ID 在执行完插入后 再执行 select @@identity from users 就OK 就是刚才插入的那行的 ID了 补充: @@ ...
- CodeForces 660B Seating On Bus
模拟. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #inc ...
- GIT使用规范流程
1:每次开发新功能时,都应该新建立一个独立的分支(branch),整个项目工程有且只有一个主分支(master branch),项目发版时是从主分支上发布. Step01:切换到主分支 $ git c ...