TP3.2批量上传文件或图片 同名冲突问题的解决方法
作者:PHP急先锋 发布时间:2024-05-03 15:29:55
标签:TP3.2,上传
本文实例为大家分享了TP3.2批量上传文件或图片的具体代码,并解决了同名冲突问题,供大家参考,具体内容如下
1、html
<form action="{:U('Upload/index')}" enctype="multipart/form-data" method="post" >
<p><input type="file" id="file3" name="ID[]" /></p>
<p><input type="file" id="file4" name="ID[]" /></p>
<input type="submit" value="上传" />
<p><img id="img1" alt="" src="/Public/IMAGE/empty_thumb.gif" /></p>
</form>
2、php
public function index(){
if(!empty($_FILES)){
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 3145728;
$upload->rootPath = './Uploads/';
$upload->savePath = 'image/';
//$upload->saveName = date('YmdHis').'-'.randomkeys(3);//msectime(),毫秒数13位
$upload->saveName = 'msectime'; //自定义函数,采用13位毫秒和3位随机数
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');
$upload->autoSub = true;
$upload->subName = array('date','Ymd');
/* 判断$_FILES[$key]是否:一维数组,单张图片上传 -xzz0703
* 原理:html的input type = "file" name="IDcard"和name="IDcard[]"的区别:
* $_FILES前者到后台php是二维数组,后者是三维数组
*/
foreach($_FILES as $key=>$value){
if(count($_FILES[$key]) == count($_FILES[$key],1)){
$info = $upload->uploadOne($_FILES[$key]);
if($info){
echo json_encode(array('code'=>200,'id'=>$img_id,'name'=>$img_name));exit;
}else{
echo json_encode(array('code'=>0,'msg'=>$upload->getError()));exit;
}
}
}
if(count($_FILES)){
$info = $upload->upload();//如果是二维数组,使用批量上传文件的方法
if(!$info){
$this->error($upload->getError());
exit;
}
$img_url = '/Uploads/'.$info[0]['savepath'].$info[0]['savename'];
$res = array('imgPath1'=>$img_url,code=>$img_url,'msg'=>$info);
echo json_encode($res);
}
}
}
3、核心:很多朋友在使用TP3.2框架的时候,在saveName属性上面被卡住了,原因就是上传服务器处理级别的百万微秒,很快。
解决:saveName = 13位的毫秒+3位随机数,完美解决,具体代码:
//返回当前的毫秒时间戳和随机数合并的字符串
function msectime() {
list($msec, $sec) = explode(' ', microtime());
$msectime = (float)sprintf('%.0f', (floatval($msec) + floatval($sec)) * 1000).randomkeys(3);
return $msectime;
}
0
投稿
猜你喜欢
- 可以使用 Python 的 NumPy 和 OpenCV 库来实现这个任务。提前准备一张图片作为素材。什么是峰值信噪比峰值信噪比(Peak
- 1、从Kmeans说起Kmeans是一个非常基础的聚类算法,使用了迭代的思想,关于其原理这里不说了。下面说一下如何在matlab中使用kme
- 本文实例讲述了JS简单模拟触发按钮点击功能的方法。分享给大家供大家参考,具体如下:<html> <head&g
- 一. 引入话题MySQL是一款广泛使用的开源数据库管理系统,它具有高效、稳定、可靠等优点,并支持多种操作系统和编程语言。然而,在使用MySQ
- 循环和列表不管怎样,程序会做一些重复的事情,下面我们就用for循环打印一个列表变量。做这个练习的时候你必须自己弄懂它们的含义和作用。在使用f
- python list筛选包含字符的字段l = [‘123a',‘456b',‘789c']ll = [s for
- 网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据。虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率
- 为了测试某个服务的稳定性,通常需要在服务长时间运行的情况下,监控其资源消耗情况,比如cpu和内存使用这里借助python的psutil这个包
- 我的终极整理,供参考# coding:utf-8import matplotlib# 使用 matplotlib中的FigureCanvas
- 问题:这里只解决一个问题,到底什么是Access?设计一个数据库管理系统,用access在access里面设计好表,查询,然后再用vb做窗体
- Pynimate介绍Pynimate是python第三方用于动态可视化的数据模块。安装pip install pynimate实验示例fro
- 这篇文章主要介绍的是关于JS的命名规范、注释规范以及框架开发的一些问题,首先来看看目录。目录1. 命名规范:介绍变量、函数、常量、构造函数、
- tensorflow利用anaconda在ubuntu下安装方法及jupyter notebook运行目录及远程访问配置Ubuntu下安装A
- 前言正常图片转化成素描图片无非对图片像素的处理,矩阵变化而已。目前很多拍照修图App都有这一功能,核心代码不超30行。如下利用 Python
- 1. 字符编码简介1.1. ASCIIASCII(American Standard Code for Information Interc
- Acunetix Web Vulnerability Scanner 是一款国外产的及其优秀的扫描工具,可以帮忙挖掘网站内的诸多漏洞,包括常
- 本文实例讲述了Python调用系统底层API播放wav文件的方法。分享给大家供大家参考,具体如下:这里未使用其他库,只是使用 pywin32
- 例子:1:www.jb51.net2:www.jb51.net3:www.jb51.net4:www.jb51.net5:www.jb51.
- 一个更易读的网站意味着网站使用性的改良以及提供愉悦的阅读体验。我们希望浏览者们能或者这些好处不是吗?这篇文章我们将介绍5个简单的方法让你能提
- 简介字符串序列用于表示和存储文本,python中字符串是不可变的,一旦声明,不能改变通常由单引号(' ),双引号(" ),