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进程管理模块forever详解
Jun 01 NodeJs
nodejs实现bigpipe异步加载页面方案
Jan 26 NodeJs
nodeJs链接Mysql做增删改查的简单操作
Feb 04 NodeJs
nodejs开发——express路由与中间件
Mar 24 NodeJs
NodeJs模拟登陆正方教务
Apr 28 NodeJs
nodejs+websocket实时聊天系统改进版
May 18 NodeJs
nodejs简单实现TCP服务器端和客户端的聊天功能示例
Jan 04 NodeJs
nodejs实现解析xml字符串为对象的方法示例
Mar 14 NodeJs
nodejs简单访问及操作mysql数据库的方法示例
Mar 15 NodeJs
NodeJs 文件系统操作模块fs使用方法详解
Nov 26 NodeJs
详解nodejs解压版安装和配置(带有搭建前端项目脚手架)
Dec 06 NodeJs
nodeJs的安装与npm全局环境变量的配置详解
Jan 06 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
自己做矿石收音机
2021/03/02 无线电
php最简单的删除目录与文件实现方法
2014/11/28 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
通过隐藏option实现select的联动效果
2009/11/10 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
javascript类型转换示例
2014/04/29 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
vue.js国际化 vue-i18n插件的使用详解
2017/07/07 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
js数组去重的N种方法(小结)
2018/06/07 Javascript
解决在vue项目中webpack打包后字体不生效的问题
2018/09/01 Javascript
JS实现将对象转化为数组的方法分析
2019/01/21 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
python脚本实现分析dns日志并对受访域名排行
2014/09/18 Python
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
django 消息框架 message使用详解
2019/07/22 Python
简单了解Django ContentType内置组件
2019/07/23 Python
使用numpngw和matplotlib生成png动画的示例代码
2021/01/24 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
HTML5单页面手势滑屏切换原理
2016/03/21 HTML / CSS
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
大学应届生求职简历的自我评价
2013/10/08 职场文书
少先队活动总结
2014/08/29 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
股权转让协议书
2014/12/07 职场文书
工作保证书怎么写
2015/02/28 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书