layui表单加文件 php_layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例...

本文实例讲述了layui框架实现文件上传及TP3.2.3对上传文件进行后台处理操作。分享给大家供大家参考,具体如下:

layui框架是1.0.9版本。。

首先html页面代码如下:

js代码如下:

layui.use('upload', function (){

var upload = layui.upload;

var url="__PUBLIC__";

upload({

elem: '#banner_file_upload',

url: "/index.php/Admin/Product/upload",

method: 'post',

before: function(obj){

console.log('文件上传中');

layer.load();

},

success: function (msg) {

console.log(msg);

if(msg.msg=="success"){

layer.closeAll('loading');

layer.msg("上传成功");

$("#img_url1").attr("value", msg.src);

}else if(msg.msg=="error"){

layer.closeAll('loading');

layer.msg(msg.code);

}

},

error:function (data) {

layer.msg("上传失败");

console.log(data);

}

});

});

接下来的php后台接值的方法:

#上传文件方法

public function upload(){

$res=array(

'code'=>1,

'msg'=>'no sorry',

'data'=>array(

'src'=>'',

)

);

#图片存放路径

$directory = C('UPLOAD_PATH')."/Public/docment/";

#判断目录是否存在 不存在则创建

if(!(is_dir($directory))){

$this->directory($directory);

}

#获取数据库最后一条id 当做文件名称

$product_last_id=D('ApiProduct')->getLastId();

$savename="ApiProduct_".time().'_'.($product_last_id['id']+1);

$upload = new \Think\Upload();

$upload->maxSize = 0;

$upload->exts = array('doc','docx','xls','xlsx','pdf','txt');

$upload->rootPath = $directory;

$upload->saveName="$savename";

$upload->savePath = '';

$info = $upload->uploadOne($_FILES['banner_file_upload']);

if(!$info){

$res['code']=$upload->getError();

$res['msg']='error';

}else{

$res['code']=0;

$res['msg']='success';

$res['src']="/Public/docment/".$savename.".".$info['ext'];

}

echo json_encode($res);die;

}

/**

* 递归创建文件

* @author erwa

*/

public function directory($dir){

return is_dir ( $dir ) or directory(dirname( $dir )) and mkdir ( $dir , 0777);

}

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513108.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何评估Serverless服务能力,这份报告给出了40条标准

简介: 如今,已经有评测机构给出了40条标准来对Serverless的服务能力进行评估,这些评估细则既是技术生态繁荣发展的一种表现,也可以作为新进入者评估Serverless落地成效的一种参考依据。 编者按:两年前,我们…

Redis 分布式锁的正确实现原理演化历程与 Redisson 实战总结

作者 | 码哥来源 | 码哥字节❝可能是最完善的 Redis 分布式锁原理与实战总结,建议收藏。Redis 分布式锁使用 SET 指令就可以实现了么?在分布式领域 CAP 理论一直存在。分布式锁的门道可没那么简单,我们在网上看到的分布式锁方案可能是有问题的…

OceanBase时序数据库CeresDB正式商用 为用户提供安全可靠的数据存储管理服务

简介: OceanBase完成OLAP和OLTP双重能力并行后,向数据管理领域多模方向迈出第一步。 近日,在数据库OceanBase3.0峰会上,OceanBase CEO杨冰宣布首个时序数据库产品CeresDB正式商用。该数据库将为用户提供安全可靠的数据查询和存储…

python if not a_python --- if not

python if not判断是否为None的情况if not xif x is Noneif not x is Noneif x is not None是最好的写法,清晰,不会出现错误,以后坚持使用这种写法。使用if not x这种写法的前提是:必须清楚x等于None, False, 空字符串""…

python shell运行当前程序、可以按下_Python下调用Linux的Shell命令的方法

有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的。那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法: 1. os 模块 1.1. os模块的exec方法族 Python的exec系统方法同Unix的exec系…

html伸缩布局,CSS3 伸缩布局(一)

CSS3引入了一种新的布局模式——Flexbox布局,即伸缩布局盒模型(Flexible Box),用来提供一个更加有效的方式制定、调整和分布一个容器里项目布局,即使它们的大小是未知或者动态的,这里简称为Flex。Flexbox布局常用于设计比较复杂的…

从0开始:500行代码实现 LSM 数据库

简介: LSM-Tree 是很多 NoSQL 数据库引擎的底层实现,例如 LevelDB,Hbase 等。本文基于《数据密集型应用系统设计》中对 LSM-Tree 数据库的设计思路,结合代码实现完整地阐述了一个迷你数据库,核心代码 500 行左右&#…

从 Docker 的信号机制看容器的优雅停止

作者 | Addo Zhang来源 | 云原生指北有太多的文章介绍如何运行容器,然而如何停止容器的文章相对少很多。根据运行的应用类型,应用的停止过程非常重要。如果应用要写文件,停止前要保证正确刷新数据并关闭文件;如果是 HTTP 服务&…

axios链接带参数_axios常见传参方式

1:get请求一般发送请求是这么写axios.get(/user?id12345&nameuser).then(function (res) {console.log(res);}).catch(function (err) {console.log(err);});但是为了方便全局统一调用封装的axiosaxios.get(/user, { //params参数必写 , 如果没有参数传{}也可以params: {i…

使用 Arthas 排查开源 Excel 组件问题

简介: 有了实际的使用之后,不免会想到,Arthas 是如何做到在程序运行时,动态监测我们的代码的呢?带着这样的问题,我们一起来看下 Java Agent 技术实现原理。 背景介绍 ​ 项目中有使用到 com.github.dream…

如何选择python书籍_关于 Python 的经典入门书籍有哪些?

展开全部 关于Python,是最近最火最的编程语言e68a843231313335323631343130323136353331333365643631,挺多人都在学习的,关于它的入门书籍,我大概推荐以下几本: 首先我介绍的是《Python基础教程(第2版修订版)》&#x…

echarts 折线图 html模板,设置ECharts折线图的提示框

回调函数回调函数格式:(params: Object|Array, ticket: string, callback: (ticket: string, html: string)) > string第一个参数 params 是 formatter 需要的数据集。格式如下:{componentType: series,// 系列类型seriesType: string,// 系列在传入的…

“融合、智能、绿色”施耐德电气线上工博以全生命周期解决方案助推数字化

原定于12月1-5日在上海举办的第23届中国国际工业博览会因为疫情再次延期。不必翘首等待,施耐德电气将以线上云展厅的形式如期与您见面,为工业用户呈现一场以“绿色智能制造,共塑可持续未来”为主题的云端盛宴。凭借在绿色智能制造领域的丰富实…

运维更简单、更智能,让运维人不再 “拼命”

简介: 云原生智能运维解决方案,利用大数据为企业日常运维服务,通过可观测数据,融合智能告警与响应中枢,结合机器学习的方法进一步解决自动化运维所未解决的问题,让运维更简单、更智能。 在90%的科幻片中 万…

python全栈马哥_马哥Python全栈+爬虫+高端自动化,资源教程下载

资源名称 马哥Python全栈爬虫高端自动化,资源教程下载 资源介绍 这套课程最后是有项目实战的,如项目四-多人博客开发、项目五CMDB资产管理、项目七-运维流程系统。 资源目录 01Python开班仪式及职业指导 02linux基础-1 03linux基础-2 04linux基础-3 05li…

java 高并发mqtt服务器_Boomer 实战压测 mqtt,2w 并发轻松实现

// main.go// 代码仅供参考,无法直接运行.package mainimport ("bytes""encoding/csv""fmt"MQTT "github.com/eclipse/paho.mqtt.golang""github.com/myzhan/boomer""io""io/ioutil""log"&qu…

从操作系统层面分析Java IO演进之路

简介: 本文从操作系统实际调用角度(以CentOS Linux release 7.5操作系统为示例),力求追根溯源看IO的每一步操作到底发生了什么。 作者 | 道坚 来源 | 阿里技术公众号 前言 本文从操作系统实际调用角度(以CentOS Linu…

AI是计算机科学,人工智能计算机科学(79种)...

COMPUTER SCIENCE, ARTIFICIAL INTELLIGENCE(人工智能计算机科学) 79种1. ADVANCED ENGINEERING INFORMATICSQuarterlyISSN: 1474-0346ELSEVIER SCI LTD, THE BOULEVARD, LANGFORD LANE, KIDLINGTON, OXFORD, ENGLAND, OXON, OX5 1GB2. AI COMMUNICATIONSQuarterlyISSN: 0921-7…

教程系列——用模板快速上线一个HR 服务中心

简介: 【开箱即用的模板使用系列教程】将会手把手教给大家如何快速启用钉钉宜搭提供各类模板。今天第一讲,介绍《HR 服务中心》的模板启用。 【开箱即用的模板使用系列教程】将会手把手教给大家如何快速启用钉钉宜搭提供各类模板。今天第1讲,…

数字化“团险”黑科技,保险极客技术升级背后心经

作者 | 宋慧 出品 | CSDN 云计算 疫情之后,一切都在“内卷”,HR 也逃不过。初创公司想要招到优秀人才,除了对市场和未来发展的预期和潜力,提供补充医疗险也是对人才重要的保障。另外,现在补充医疗也是知名大企业高福利…