nodejs 整合kindEditor实现图片上传


Posted in NodeJs onFebruary 03, 2015

kindEditor官网上中提供了ASP,ASP.NET,JSP相关的整合应用,http://kindeditor.net/docs/upload.html可以参照实现nodejs的整合,发现实用nodejs更简单

环境:
unbuntu 14.10
nodejs 0.10.35
express 4.11.2
formidable 1.0.16
kindEditor 4.1.10
webStorm 8

1.通过IDE或终端创建一个名称为test的工程

2.编辑package.json添加formidable依赖,这里使用的是1.0.16版本,之后通过终端执行npm install完成依赖的安装

3.将kindEditor整个目录放到test/public/lib下

4.修改index.ejs和index.js文件
index.ejs中整合kindEditor:
       设置kindEditor的uploadJson为nodejs所提供的处理图片上传的路由url这里用的是/uploadImg
index.js中添加处理图片上传的路由url:
       添加/uploadImg对应的post处理方式,
代码如下:

index.js

<!DOCTYPE html>

<html>

  <head>

    <title><%= title %></title>

    <link rel='stylesheet' href='/stylesheets/style.css' />

      <script charset="utf-8" src="/lib/kindeditor-4.1.10/kindeditor.js"></script>

      <script charset="utf-8" src="/lib/kindeditor-4.1.10/lang/zh_CN.js"></script>

      <script>

          var options = {

              uploadJson: '/uploadImg'

          };

          KindEditor.ready(function(K) {

              window.editor = K.create('#editor', options);

          });

      </script>

  </head>

  <body>

    <h1><%= title %></h1>

    <textarea id="editor" name="content" style="width:700px;height:300px;">

        <strong>HTML内容</strong>

    </textarea>

  </body>

</html>

index.js

var express = require('express');

var router = express.Router();

var formidable = require('formidable');

/* GET home page. */

router.get('/', function(req, res, next) {

  res.render('index', { title: '图片上传' });

});

router.post('/uploadImg', function(req, res, next) {

    var form = new formidable.IncomingForm();

    form.keepExtensions = true;

    form.uploadDir = __dirname + '/../public/upload';

    form.parse(req, function (err, fields, files) {

        if (err) {

            throw err;

        }

        var image = files.imgFile;

        var path = image.path;

        path = path.replace('/\\/g', '/');

        var url = '/upload' + path.substr(path.lastIndexOf('/'), path.length);

        var info = {

            "error": 0,

            "url": url

        };

        res.send(info);

    });

});

module.exports = router;

之后通过IDE或终端启动test工程,通过http://localhost:3000访问页面就可以上传图片了

NodeJs 相关文章推荐
Windows 系统下设置Nodejs NPM全局路径
Apr 26 NodeJs
Nodejs 搭建简单的Web服务器详解及实例
Nov 30 NodeJs
NodeJS遍历文件生产文件列表功能示例
Jan 22 NodeJs
Nodejs实现短信验证码功能
Feb 09 NodeJs
nodejs入门教程五:连接数据库的方法分析
Apr 24 NodeJs
nodejs 图解express+supervisor+ejs的用法(推荐)
Sep 08 NodeJs
nodejs超出最大的调用栈错误问题
Dec 27 NodeJs
nodejs简单访问及操作mysql数据库的方法示例
Mar 15 NodeJs
M2实现Nodejs项目自动部署的方法步骤
May 05 NodeJs
nodejs实现用户登录路由功能
May 22 NodeJs
Nodejs监控事件循环异常示例详解
Sep 22 NodeJs
NodeJS多种创建WebSocket监听的方式(三种)
Jun 04 NodeJs
NodeJS学习笔记之Connect中间件应用实例
Jan 27 #NodeJs
NodeJS学习笔记之Connect中间件模块(二)
Jan 27 #NodeJs
NodeJS学习笔记之Connect中间件模块(一)
Jan 27 #NodeJs
nodejs批量修改文件编码格式
Jan 22 #NodeJs
NodeJS学习笔记之MongoDB模块
Jan 13 #NodeJs
NodeJS学习笔记之(Url,QueryString,Path)模块
Jan 13 #NodeJs
NodeJS学习笔记之FS文件模块
Jan 13 #NodeJs
You might like
ThinkPHP实现批量删除数据的代码实例
2014/07/02 PHP
PHP原生函数一定好吗?
2014/12/08 PHP
详解PHP防止直接访问.php 文件的实现方法
2017/07/28 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
jquery对表单操作2
2011/04/06 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
javascript对select标签的控制(option选项/select)
2013/01/31 Javascript
JQuery筛选器全系列介绍
2013/08/27 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
浅谈jQuery中的checkbox问题
2016/08/10 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
2016/08/23 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
vue.js实现标签页切换效果
2018/06/07 Javascript
JavaScript 作用域实例分析
2019/10/02 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
2020/03/25 Javascript
vue实现登录功能
2020/12/31 Vue.js
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python中的列表生成式与生成器学习教程
2016/03/13 Python
Python读写Json涉及到中文的处理方法
2016/09/12 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
英国DIY和家居装饰领域的主要品牌:Wickes
2019/11/26 全球购物
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
小学后勤管理制度
2014/01/14 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
《将心比心》教学反思
2016/02/23 职场文书