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 ...
随机推荐
- Nodejs开源项目里怎么样写测试、CI和代码测试覆盖率
测试 目前主流的就bdd和tdd,自己查一下差异 推荐 mocha和tape 另外Jasmine也挺有名,angularjs用它,不过挺麻烦的,还有一个选择是qunit,最初是为jquery测试写的, ...
- emacs format
格式化源码是很常见的需求,emacs有个indent-region函数用于格式化选定的代码,前提是你处在某个非text mode下,如c-mode或者java-mode之类.如果要格式化整个文件,你需 ...
- json optString getString
optString 和 getString 区别. optString 当接收到的为空时候 不会报错
- 加密Web.Config配置文件
protected void btnPassWord_Click(object sender, EventArgs e) { //加密 Configuration config = WebConfig ...
- 使用JAVA NIO实现的UDP client和server
//////////////////////////////////////////////////////////////////////////////////////////////////// ...
- Linux:网络yum源设置
网络yum源,最大的网易(163)算是一个,无论是速度还是软件版本,都非常的不错,将yum源设置为163yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到.具体设置方法如下: 1 ...
- Python+Selenium WebDriver API:浏览器及元素的常用函数及变量整理总结
由于网页自动化要操作浏览器以及浏览器页面元素,这里笔者就将浏览器及页面元素常用的函数及变量整理总结一下,以供读者在编写网页自动化测试时查阅. from selenium import webdrive ...
- Altera CYCLONE III FPGA BGA布线
最近在做altera FPGA BGA相关的布线工作,收集了一些资料,公开出来以供大家讨论. 首先是器件引脚,只有弄清楚器件各个引脚的功能才能够进行布线,下面的文档详细描述了每个引脚的功能. 各引脚功 ...
- (中等) CF 585C Alice, Bob, Oranges and Apples,矩阵+辗转相除。
Alice and Bob decided to eat some fruit. In the kitchen they found a large bag of oranges and apples ...
- Freertos之系统配置
Freertos之系统配置 http://blog.csdn.net/liyuanbhu/article/details/7912170/