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学习笔记之(Url,QueryString,Path)模块
Jan 13 NodeJs
使用nodejs开发cli项目实例
Jun 03 NodeJs
nodejs修复ipa处理过的png图片
Feb 17 NodeJs
nodejs+express实现文件上传下载管理网站
Mar 15 NodeJs
使用nodejs爬取前程无忧前端技能排行
May 06 NodeJs
nodejs socket实现的服务端和客户端功能示例
Jun 02 NodeJs
nodejs利用ajax实现网页无刷新上传图片实例代码
Jun 06 NodeJs
nodejs中art-template模板语法的引入及冲突解决方案
Nov 07 NodeJs
nodeJs爬虫的技术点总结
May 13 NodeJs
nodejs 如何手动实现服务器
Aug 20 NodeJs
nodejs中实现修改用户路由功能
May 24 NodeJs
Nodejs + Websocket 指定发送及群聊的实现
Jan 09 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
PHP 数组遍历顺序理解
2009/09/09 PHP
php绝对路径与相对路径之间关系的的分析
2010/03/03 PHP
用Json实现PHP与JavaScript间数据交换的方法详解
2013/06/20 PHP
编译PHP报错configure error Cannot find libmysqlclient under usr的解决方法
2014/06/27 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
php微信扫码支付 php公众号支付
2019/03/24 PHP
Javascript 读后台cookie代码
2008/09/15 Javascript
javascript RadioButtonList获取选中值
2009/04/09 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
js全选实现和判断是否有复选框选中的方法
2015/02/17 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
redux中间件之redux-thunk的具体使用
2018/04/17 Javascript
详解vue中多个有顺序要求的异步操作处理
2019/10/29 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
[03:56]DOTA2完美大师赛趣味视频之小鸽子和Mineski打台球
2017/11/24 DOTA
pandas把dataframe转成Series,改变列中值的类型方法
2018/04/10 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
关于Python 常用获取元素 Driver 总结
2019/11/24 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
Python求两个字符串最长公共子序列代码实例
2020/03/05 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
J.Crew官网:美国知名休闲服装品牌
2017/05/19 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
生产车间主任的个人自我鉴定
2013/10/25 职场文书
母亲80寿诞答谢词
2014/01/16 职场文书
通信生自我鉴定
2014/01/18 职场文书
小区门卫值班制度
2014/01/24 职场文书
民主评议政风行风整改方案
2014/09/17 职场文书
Lombok的详细使用及优缺点总结
2021/07/15 Java/Android
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers