laravel 文章发布功能----ckeditor使用(附带post处理方法)
2016-06-04 16:15
856 查看
如果要做一个文章发布功能,一个优秀的在线HTML编辑器是必不可少的,目前来说,优秀的在线HTML编辑器有“ckEditor”、“kindEditor”、“xhEditor”,而我选择的是“ckEditor”,这篇文章将会介绍自己laravel项目中如何使用"ckEditor"。
(一)版本说明
1、laravel版本是5.2
2、ckEditor版本是3.6.3、
(二)视图设置
1、添加需要用到ckeditor的文本内容(注意,需要使用textarea,并且id为下一步JavaScript代码中替换的id,这里使用的是‘content’):
2、添加JavaScript代码
<script type="text/javascript">
window.onload = function()
{
CKEDITOR.replace( 'content', {
filebrowserBrowseUrl: '{{url('uploads/images/')}}',
filebrowserUploadUrl: '{{url('admin/article/image')}}?_token={{csrf_token()}}'
});
};
</script>在这段代码当中,‘content’则是上一步添加的itextarea的id,可以自行定义,而filebrowserBrowseUrl变量指的是浏览你服务器图片存放目录,如果不想不需要可以删去这个变量。filebrowserUploadUrl变量是指图片post提交的处理地址,因为laravel默认开启了csrf验证,所以在url地址需要加上“?_token={{csrf
_token()}}”,如果不添加又不更改laravel默认csrf设置,将会提示错误。
(三)post图片数据处理
1、laravel路由添加(routes.php):
Route::controller('admin/article','ArticleController');
这是同上一步JavaScript中filebrowserUploadUrl变量相对应,目的使图片post到url有效。
2、laravel图片post处理(ArticleController.php):
public function postImage(Request $request)
{
if ($request->hasFile('upload')) { //upload为ckeditor默认的file提交ID
$file = $request->file('upload'); //从请求数据内容中取出图片的内容
$allowed_extensions = ["png", "jpg", "gif"]; //允许的图片后缀
if ($file->getClientOriginalExtension() && !in_array($file->getClientOriginalExtension(), $allowed_extensions)) {
return '图片后缀只支持png,jpg,gif,请检查!';
}
$destinationPath = 'uploads/images/'; //图片存放路径
$extension = $file->getClientOriginalExtension(); //获得文件后缀
$fileName = str_random(10) . '.' . $extension; //创建图片名字
$result = $file->move($destinationPath, $fileName); //存储图片到路径
echo url('') . '/' .$result ; //输出图片网站中浏览路径
}
}我选择对图片处理是把图片存放在服务器上,并返回图片浏览的url地址。其实还有一种比较好的做法是把url直接通过JavaScript直接填在图片浏览url栏上。
(四)成功之后的效果:
(一)版本说明
1、laravel版本是5.2
2、ckEditor版本是3.6.3、
(二)视图设置
1、添加需要用到ckeditor的文本内容(注意,需要使用textarea,并且id为下一步JavaScript代码中替换的id,这里使用的是‘content’):
<div class="form-group"> <label for="content">content</label> <textarea id="content" name="content" class="form-control" rows="3"></textarea> <div class="form-group">
2、添加JavaScript代码
<script type="text/javascript">
window.onload = function()
{
CKEDITOR.replace( 'content', {
filebrowserBrowseUrl: '{{url('uploads/images/')}}',
filebrowserUploadUrl: '{{url('admin/article/image')}}?_token={{csrf_token()}}'
});
};
</script>在这段代码当中,‘content’则是上一步添加的itextarea的id,可以自行定义,而filebrowserBrowseUrl变量指的是浏览你服务器图片存放目录,如果不想不需要可以删去这个变量。filebrowserUploadUrl变量是指图片post提交的处理地址,因为laravel默认开启了csrf验证,所以在url地址需要加上“?_token={{csrf
_token()}}”,如果不添加又不更改laravel默认csrf设置,将会提示错误。
(三)post图片数据处理
1、laravel路由添加(routes.php):
Route::controller('admin/article','ArticleController');
这是同上一步JavaScript中filebrowserUploadUrl变量相对应,目的使图片post到url有效。
2、laravel图片post处理(ArticleController.php):
public function postImage(Request $request)
{
if ($request->hasFile('upload')) { //upload为ckeditor默认的file提交ID
$file = $request->file('upload'); //从请求数据内容中取出图片的内容
$allowed_extensions = ["png", "jpg", "gif"]; //允许的图片后缀
if ($file->getClientOriginalExtension() && !in_array($file->getClientOriginalExtension(), $allowed_extensions)) {
return '图片后缀只支持png,jpg,gif,请检查!';
}
$destinationPath = 'uploads/images/'; //图片存放路径
$extension = $file->getClientOriginalExtension(); //获得文件后缀
$fileName = str_random(10) . '.' . $extension; //创建图片名字
$result = $file->move($destinationPath, $fileName); //存储图片到路径
echo url('') . '/' .$result ; //输出图片网站中浏览路径
}
}我选择对图片处理是把图片存放在服务器上,并返回图片浏览的url地址。其实还有一种比较好的做法是把url直接通过JavaScript直接填在图片浏览url栏上。
(四)成功之后的效果:
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- windows用windeployqt发布qt quick application程序
- Php Installing An Expansion
- rem : web app适配的秘密武器
- jquery高级应用之Deferred对象
- workerman结合laravel开发在线聊天应用的示例代码
- php7 读取php.ini[4]
- 简单对比分析Ruby on Rails 和 Laravel
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站