php上传多张图片
第一种:加后缀

代码实现(就是普通的上传图片,只是在外面加个foreach循环)
$allow_file_types = '|GIF|JPG|PNG|BMP|SWF|DOC|XLS|PPT|MID|WAV|ZIP|RAR|PDF|CHM|RM|TXT|CERT|';
foreach ($_FILES AS $code => $file)
{
/* 判断用户是否选择了文件 */
if ((isset($file['error']) && $file['error'] == 0) || (!isset($file['error']) && $file['tmp_name'] != 'none'))
{
/* 检查上传的文件类型是否合法 */
if (!check_file_type($file['tmp_name'], $file['name'], $allow_file_types))
{
echo json_encode(['code' => 60000,'msg' => sprintf('您上传了一个非法的文件类型。该文件名为:%s', $file['name'])]);exit;
}
else
{
//照片
$logo_name = $user_id."_".time()."_".rand(1,1000).".jpg";
$path = './../images/Image/'.date('Ym')."/";
$to_path = ROOT_PATH.$path;
if (!file_exists($to_path)){
mkdir ($to_path);
chmod($to_path,0777);
}
$file_name = $to_path.$logo_name;
/* 判断是否上传成功 */
if (move_upload_file($file['tmp_name'], $file_name)){
$imgs = $imgs.$path.$logo_name.",";
}
else
{
//echo json_encode(['code' => 60001, 'msg' => '上传失败!请重新上传!']);exit;
echo json_encode(['code' => 60001, 'msg' => sprintf('上传文件 %s 失败,请检查 %s 目录是否可写。', $file['name'], $to_path)]);exit;
}
}
}
}
注:只要上传图片就会成功。
第二种:数组形式

代码实现
/* 允许上传的文件类型 */
$allow_file_types = '|GIF|JPG|PNG|BMP|SWF|DOC|XLS|PPT|MID|WAV|ZIP|RAR|PDF|CHM|RM|TXT|CERT|';
foreach ($_FILES['imgs']['type'] AS $key => $val)
{
/* 判断用户是否选择了文件 */
if ((isset($_FILES['imgs']['error'][$key]) &&$_FILES['imgs']['error'][$key] == 0) || (!isset($_FILES['imgs']['error'][$key]) && $_FILES['imgs']['error'][$key] != 'none'))
{
/* 检查上传的文件类型是否合法 */
if (!check_file_type($_FILES['imgs']['tmp_name'][$key], $_FILES['imgs']['name'][$key], $allow_file_types))
{
echo json_encode(['code' => 60000,'msg' => sprintf('您上传了一个非法的文件类型。该文件名为:%s', $_FILES['imgs']['name'][$key])]);exit;
}
else
{
//照片
$logo_name = $user_id."_".time()."_".rand(1,1000).".jpg";
$path = './../images/Image/'.date('Ym')."/";
$to_path = ROOT_PATH.$path;
if (!file_exists($to_path)){
mkdir ($to_path);
chmod($to_path,0777);
}
$file_name = $to_path.$logo_name;
/* 判断是否上传成功 */
if (move_upload_file($_FILES['imgs']['tmp_name'][$key], $file_name)){
$imgs = $imgs.$path.$logo_name.",";
}
else
{
//echo json_encode(['code' => 60001, 'msg' => '上传失败!请重新上传!']);exit;
echo json_encode(['code' => 60001, 'msg' => sprintf('上传文件 %s 失败,请检查 %s 目录是否可写。', $file['name'], $to_path)]);exit;
}
}
}
}
注:只接受名称为imgs的文件,并且是数组型。
php上传多张图片的更多相关文章
- iOS -- 上传多张图片 后台(PHP)代码和上传一张的一样
// 上传多张图片 - (void)send { // 设置初始记录量为0 self.count = 0; self.upcount = 0; // 设置初始值为NO self.isUploadPic ...
- php用jquery-ajax上传多张图片限制图片大小
php用jquery-ajax上传多张图片限制图片大小 /** * 上传图片,默认大小限制为3M * @param String $fileInputName * @param number $siz ...
- 微信JSSDK上传多张图片
之前是使用for循环实现的,但是安卓手机没有问题,苹果手机只能上传最后一张图片. 好在有高手在前面趟路,实用的循环调用.苹果是没有,安卓不清楚.以下内容转自:http://leo108.com/pid ...
- 整理几个js上传多张图片的效果
一.普通的上传图片,张数不限制 <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"&g ...
- 如何在IPFS里面上传一张图片
之前有好几人问过小编,想在IPFS里面上传一张图片.如何做? 今天小编就讲一下如何在IPFS里面上传.下载文件? 1 下载IPFS软件 下载地址:https://dist.ipfs.io/#go-ip ...
- Ajax+PHP实现异步上传多张图片
Ajax+PHP实现异步上传多张图片 HTML代码 <!-- date: 2018-04-27 13:46:55 author: 王召波 descride: 多张图片上传 --> < ...
- 1) 上传多张图片时 ,对 $_FILES 的处理. upload ; 2)fileinput 上传多张图片. 3) 修改,删除的时候删除原来的资源,图片 update, delete , 删除 4)生成器中两个字段上传图片的时候,要修改生成器生成的代码
1上传多张图片, 要对 $_FILES进行 重新处理. //添加 public function addCourseAlbumAction() { $CourseAlbumModel = new Co ...
- Okhttp3上传多张图片同时传递参数
之前上传图片都是直接将图片转化为io流传给服务器,没有用框架传图片. 最近做项目,打算换个方法上传图片. Android发展到现在,Okhttp显得越来越重要,所以,这次我选择用Okhttp上传图片. ...
- POST请求上传多张图片并携带参数
POST请求上传多张图片并携带参数 在iOS中,用POST请求携带参数上传图片是非常恶心的事情,HTTPBody部分完全需要我们自己来配置,这个HTTPBody分为3个部分,头部分可以携带参数,中间部 ...
- thinkphp3.2+cropper上传多张图片剪切图片
实现效果截图 点加号可以继续上传第二张图片 代码部<--引入cropper相关文件--> <link rel="stylesheet" href="/h ...
随机推荐
- JDK / JRE zip
Server JRE与JRE的区别: Server JRE一般用于服务器上安装,只有64bit版本,不会安装浏览器插件.自动更新,有监视工具.没有Java Fx和其他开发工具:有安装程序,只是一压缩目 ...
- jenkins中如何实现执行脚本时的变量共享
1.主要是利用EnvInject Plugin插件,所以要首先安装插件,安装好后如下图: 2.然后在“增加构建步骤”中,插入一个“Execute Python script” 代码我用的python3 ...
- uniDAC的安装和使用
1.解压后把UniDAC文件夹 2.在UniDAC\Source\Delphi7文件夹中找到Make.bat文件,鼠标右键“编辑”确认DELPHI7的安装路径是否正确(建议:设置成绝对路径了,防止因为 ...
- jenkins搭配git 从远程端拉取代码回来执行的问题
jenkins上git 拉取回来的代码是在 工作区的文件夹里面(默认每次拉取最新的版本下来的)(不是自己本地仓库的那个) (晕~~,一开始以为是拉取回自己的本地仓库) 找到jenkins git里面 ...
- 基础 - 获得CPU主频
// 获得cpu主频.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <windows.h> #include ...
- synchronized 实现同步的基础
1.普通同方法,锁是当前实例对象 2.静态同步方法,锁是当前类的class对象 3.同步代码块,锁是括号里的对象
- 高性能mysql 第五章 索引部分总结
高性能索引 1.索引基础:索引的作用类似'目录'帮助Query来快速定位数据行. 1.1索引类型: 1.1.1 b-tree索引 b-tree(balance tree)索引:使用平衡树(非平衡二叉树 ...
- vue-cli脚手架build目录中的build.js配置文件
该随笔收藏自: vue-cli脚手架build目录中的build.js配置文件 这个配置文件是命令npm run build 的入口配置文件,主要用于生产环境 由于这是一个系统的配置文件,将涉及很多的 ...
- 多端统一框架尝试--Taro
参考资料 Taro官网Taro GitHubTaro资源汇总Taro-UI 我的demo代码 github地址 Taro介绍和尝试心得 Taro是基于React语法规范开发的多端统一的框架,一套代码可 ...
- windows:plsql配置oracle连接
1.plsql安装 此处省略,后续添加 2.plsql连接oracle: (1) 下载Instant client:http://www.oracle.com/technetwork/cn/topic ...