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爬虫进阶教程之异步并发控制
Feb 15 NodeJs
Nodejs Stream 数据流使用手册
Apr 17 NodeJs
详谈Angular路由与Nodejs路由的区别
Mar 05 NodeJs
深入理解nodejs中Express的中间件
May 19 NodeJs
nodejs开发微信小程序实现密码加密
Jul 11 NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 NodeJs
Mac下通过brew安装指定版本的nodejs教程
May 17 NodeJs
Nodejs实现的操作MongoDB数据库功能完整示例
Feb 02 NodeJs
nodejs中实现用户注册路由功能
May 20 NodeJs
纯异步nodejs文件夹(目录)复制功能
Sep 03 NodeJs
在nodejs中创建child process的方法
Jan 26 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无限级分类方法及代码
2013/06/21 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
2014/03/13 PHP
Smarty使用自定义资源的方法
2015/08/08 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
PHP中“=&gt;
2019/03/01 PHP
javascript 表单验证常见正则
2009/09/28 Javascript
JS动态加载当前时间的方法
2015/02/09 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
JS实现利用两个队列表示一个栈的方法
2017/12/13 Javascript
vue 权限认证token的实现方法
2018/07/17 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
vue实现文件上传功能
2018/08/13 Javascript
vue项目中使用tinymce编辑器的步骤详解
2018/09/11 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
javascript json对象小技巧之键名作为变量用法分析
2019/11/11 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
Python闭包的两个注意事项(推荐)
2017/03/20 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
python 自动去除空行的实例
2018/07/24 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
深入理解Python 多线程
2020/06/16 Python
python 怎样进行内存管理
2020/11/10 Python
HTML5 声明兼容IE的写法
2011/05/16 HTML / CSS
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
.net面试题
2016/09/17 面试题
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
MySQL 如何分析查询性能
2021/05/12 MySQL
Java并发编程必备之Future机制
2021/06/30 Java/Android