ThinkPHP第十三天(CONF_PATH、APP_PATH,UEditor用法)
1、CONF_PATH 项目配置文件目录地址,APP_PATH 项目地址
2、ThinkPHP中更新数据的连接操作位save(),更新一个字段可以用setField(name,value)方法。
3、UEditor在ThinkPHP中引用方法:
假设将下载回来的UEditor文件夹放于项目目录的Public文件夹中,上传文件保存在根目录中的Uploads中,在引用页面JS代码如下
<script type="text/javascript">
window.UEDITOR_HOME_URL = "__PUBLIC__/ueditor/";//设定ueditor目录
window.onload = function(){ window.UEDITOR_CONFIG.initialFrameWidth = 1000 ; //编辑器宽度
window.UEDITOR_CONFIG.initialFrameHeight = 380; //编辑器高度
window.UEDITOR_CONFIG.imageUrl = "{:U(GROUP_NAME.'/Blog/upload')}"; //图片上传提交地址
window.UEDITOR_CONFIG.imagePath = "__ROOT__/Uploads/" //图片修正地址 UE.getEditor('content');
};
</script>
<js file="__PUBLIC__/ueditor/ueditor.config.js" />//引入编辑器配置文件
<js file="__PUBLIC__/ueditor/ueditor.all.min.js" />//引入编辑器JS文件
UEditor配置文件是ueditor.config.js可以参考里面细节配置项。
PHP上传代码:使用ThinkPHP自带的上传类UploadFile.class.php
Public function upload(){
import('ORG.Net.UploadFile');//引入类库
$upload = new UploadFile;
$upload->autoSub =true;//启用子文件夹上传目录
$upload->subType = 'date';//用年月日作为子文件夹名称
$upload->dateFormat = 'Ym';//用年月作为子文件名称
$upload->savePath = './Uploads/';//保存文件目录
$title = htmlspecialchars($_POST['pictitle'], ENT_QUOTES);
if($upload->upload()){
$info = $upload->getUploadFileInfo();
$data = array(//UEditor要求返回Json数据格式
'url'=>$info[0]['savename'],
'title'=>$title,
'original'=>$info[0]['name'],
'state'=>'SUCCESS'//state只有是SUCCESS时候才显示成功
);
}else{
$data = array(
'state'=>$upload->getErrorMsg(),//当state不是SUCCESS时候就会把state原样输出,正好显示:上传失败显示错误信息
);
}
echo json_encode($data);//返回json数据
}
ThinkPHP第十三天(CONF_PATH、APP_PATH,UEditor用法)的更多相关文章
- [转]thinkphp 模板显示display和assign的用法
thinkphp 模板显示display和assign的用法 $this->assign('name',$value); //在 Action 类里面使用 assign 方法对模板变量赋值,无论 ...
- thinkPHP内置字符串截取msubstr函数用法详解
作者:陈达辉 字体:[增加 减小] 类型:转载 时间:2016-11-15 我要评论 这篇文章主要介绍了thinkPHP内置字符串截取函数用法,结合实例形式分析了thinkPHP内置的字符串截取函数功 ...
- thinkphp 模板显示display和assign的用法
this->assign('name',$value); //在 Action 类里面使用 assign 方法对模板变量赋值,无论何种变量类型都统一使用 assign 赋值 $this-> ...
- UEditor用法
UEditor是百度的编辑器,界面美观,功能强大,用起来还不错. 详见该链接http://ueditor.baidu.com/ 一.下载 http://ueditor.baidu.com/downlo ...
- 【Java学习笔记之二十三】instanceof运算符的用法小结
instanceof运算符用法 运算符是双目运算符,左面的操作元是一个对象,右面是一个类.当左面的对象是右面的类创建的对象时,该运算符运算的结果是true,否则是false 说明: (1)一个类的实例 ...
- Java开发笔记(五十三)关键字final的用法
前面介绍了多态的相关用法,可以看到一个子类从父类继承之后,便能假借父类的名义到处晃悠.这种机制在正常情况之下没啥问题,但有时为了预防意外发生,往往只接受当事人来处理,不希望它的儿子乃至孙子来瞎掺和.可 ...
- Git复习(十三)之git revert用法及与git reset区别
git revert用法以及与git reset的区别 git revert用法 git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销 作为一 ...
- ThinkPHP第二十三天(Category表结构、PHPExcel导入数据函数)
1.category分类表表结构id,name,pid,sort,结合category.class.php类使用. 2.PHPExcel导入数据函数示例 function excel_to_mysql ...
- 明天学习一下验证码的匹配和thinkphp第十三章
333333333 js 冒泡排序 var arr=[17,19,5,90,3];window.onload=function(){// alert(arr[0]);var len=arr.lengt ...
随机推荐
- android加载更多的图片
这是昨天改进后的,我测试了下,可以加载图片到5万张,估计5万以上也是没问题的,我只试到5万,其实也没必要这么高,现实中1000左右就差不多了,不过我的应用到100就差不多了, package com. ...
- #include <vector>
双端队列deque比向量vector更有优势 vector是动态数组,在堆上 vector比array更常用 不需要变长,容量较小,用array 需要变长,容量较大,用vector 1 at() 取出 ...
- 《UML和模式应用》重点之思想篇
本书是帮助开发人员和学生学习面向对象分析和设计(OOA/D)的核心技能的重要工具. UML不是OOA/D.也不是方法,仅仅是图形表示法,假设没有真正掌握怎样创建优秀的面向对象设计,或者怎样评估和改进现 ...
- JavaScript引用类型之Array类型一
一.简介 除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了.下面就来分析ECMAScript中的数组与其他语言中的数组的异同性: 1.相同点: (1)他们都是数据的有序列 ...
- 性能优化工具---vmstat
作用: 报告关于内核线程.虚拟内存.磁盘.陷阱和 CPU 活动的统计信息 参数: 通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数 显示说明: 第一行数据反映开 ...
- 深度优先搜索——迷宫问题(华为oj)
题目描述: 定义一个二维数组N*M(其中2<=N<=10;2<=M<=10),如5 × 5数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, ...
- Knuth-Morris-Pratt Algorithm
Today , 第一次学习KMP Algorithm,其中好多地方还是不能理解的透彻,本文将进一步对 KMP Algorithm 进行学习,搞清楚其中的思想…… First , KMP Algorit ...
- Java学习之字符串练习
1.给定一个字符串数组.按照字典顺序进行从小到大的排序. * 思路: * 1,对数组排序.可以用选择,冒泡都行. * 2,for嵌套和比较以及换位. * 3,问题:以前排的是整数,比较用的比较运算符, ...
- .Net 类型、对象、线程栈、托管堆运行时的相互关系
JIT(just in time)编译器 接下来的会讲到方法的调用,这里先讲下JIT编译器.以CLR书中的代码为例(手打...).以Main方法为例: static void Main(){ Cons ...
- Java动态代理机制——Cglib
上一篇说过JDK动态代理机制,只能代理实现了接口的类,这就造成了限制.对于没有实现接口的类,我们可以用Cglib动态代理机制来实现. Cglib是针对类生成代理,主要是对用户类生成一个子类.因为有继承 ...