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 相关文章推荐
nodejs中实现路由功能
Dec 29 NodeJs
Nodejs express框架一个工程中同时使用ejs模版和jade模版
Dec 28 NodeJs
nodejs的HTML分析利器node-jquery用法浅析
Nov 08 NodeJs
NodeJs下的测试框架Mocha的简单介绍
Feb 22 NodeJs
详解nodejs微信公众号开发——2.自动回复
Apr 10 NodeJs
解析NodeJS异步I/O的实现
Apr 13 NodeJs
nodejs和C语言插入mysql数据库乱码问题的解决方法
Apr 14 NodeJs
nodejs 简单实现动态html的方法
May 12 NodeJs
nodejs开发一个最简单的web服务器实例讲解
Jan 02 NodeJs
NodeJS开发人员常见五个错误理解
Oct 14 NodeJs
用Nodejs实现在终端中炒股的实现
Oct 18 NodeJs
nodejs利用readline提示输入内容实例代码
Jul 15 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
Memcached常用命令以及使用说明详解
2013/06/27 PHP
PHP简单实现HTTP和HTTPS跨域共享session解决办法
2015/05/27 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
2019/02/15 PHP
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
JS控制日期显示的小例子
2013/11/23 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
Underscore.js常用方法总结
2015/02/28 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
video.js使用改变ui过程
2017/03/05 Javascript
详解nodejs爬虫程序解决gbk等中文编码问题
2017/04/06 NodeJs
浅谈 vue 中的 watcher
2017/12/04 Javascript
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
Python中os.path用法分析
2015/01/15 Python
讲解Python中fileno()方法的使用
2015/05/24 Python
详解Django缓存处理中Vary头部的使用
2015/07/24 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
python实现分页效果
2017/10/25 Python
python获取文件路径、文件名、后缀名的实例
2018/04/23 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
Django实现文件上传下载
2019/10/06 Python
基于python调用psutil模块过程解析
2019/12/20 Python
Python threading.local代码实例及原理解析
2020/03/16 Python
css3实现的下拉菜单效果示例
2014/01/22 HTML / CSS
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
法国票务网站:Ticketmaster法国
2018/07/09 全球购物
经典c++面试题四
2015/05/14 面试题
电气自动化自荐信
2013/10/10 职场文书
甲方资料员岗位职责
2013/12/13 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
党支部活动策划方案
2014/08/18 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书