nodejs+express整合kindEditor实现图片上传 - 木子丰咪咕晶 - 开源中国

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.ejs

<!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;">&lt;strong&gt;HTML内容&lt;/strong&gt;</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访问页面就可以上传图片了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot多模块项目使用maven命令打成war包放到服务器上运行的问题

首先&#xff0c;大家看到这个问题&#xff0c;可能并不陌生&#xff0c;而且脑子里第一映像就是使用mava中的clear package 或者 clear install进行打包&#xff0c;然后在项目中的target文件夹下面找到xxx.war&#xff0c;将这个war包放到外置的tomcat服务器下的webapps下面&…

Kafka学习笔记(3)----Kafka的数据复制(Replica)与Failover

1. CAP理论 1.1 Cosistency(一致性) 通过某个节点的写操作结果对后面通过其他节点的读操作可见。 如果更新数据后&#xff0c;并发访问的情况下可立即感知该更新&#xff0c;称为强一致性 如果允许之后部分或全部感知不到该更新&#xff0c;称为弱一致性。 若在之后的一段时间&…

H5页面随机数字键盘支付页面

H5页面随机数字键盘支付页面 有个H5支付的业务需要随机数字的键盘 参考了下文&#xff1a;https://blog.csdn.net/Mr_Smile2014/article/details/52473351 做了一些小修改&#xff1a; 在原有的基础上&#xff0c;增加了一些按键反馈的效果。 每个按键加上边框。 最终效果&…

expressjs路由和Nodejs服务器端发送REST请求 - - ITeye博客

Nodejs创建自己的server后&#xff0c;我们如果需要从客户端利用ajax调用别的服务器端的数据API的接口&#xff0c;这时候出现了ajax跨域问题。 一种是利用在客户端解决跨域问题 这种方案大家可以去网上查查 另一种方案是在服务器端去请求别的服务器&#xff0c;然后将数据再…

Jmeter操作mysql数据库测试

1. 选中线程组鼠标点击右键添加-->配置元件-->JDBC Connection Configuration&#xff1b; 2. DataBase Connection Configuration配置 Variable Name&#xff1a;配置元件的的所有配置所保存的变量&#xff0c;自定义变量名称(不能使用mysql作为变量名&#xff0c;多个…

axios发送自定义请求头的跨域解决

前端发送来的axios请求信息 this.$axios.request({ url:http://127.0.0.1:8001/pay/shoppingcar/, method:post, headers:{ authenticate:a073b3dabbb140e8b9d28debb6a356a1 # 自定义的请求头部信息键值对, }, # 接上,这种key也算是一种请求头,需要加入django中间件内…

前端“智能”静态资源管理 - Onebox - 博客园

前端“智能”静态资源管理 模块化/组件化开发&#xff0c;仅仅描述了一种开发理念&#xff0c;也可以认为是一种开发规范&#xff0c;倘若你认可这规范&#xff0c;对它的分治策略产生了共鸣&#xff0c;那我们就可以继续聊聊它的具体实现了。 很明显&#xff0c;模块化/组件化…

【转】几张图看懂列式存储

几张图看懂列式存储 转载于:https://www.cnblogs.com/apeway/p/10870211.html

hive -e和hive -f的区别(转)

大家都知道&#xff0c;hive -f 后面指定的是一个文件&#xff0c;然后文件里面直接写sql&#xff0c;就可以运行hive的sql&#xff0c;hive -e 后面是直接用双引号拼接hivesql&#xff0c;然后就可以执行命令。 但是&#xff0c;有这么一个东西&#xff0c;我的sql当中有一个s…

我们是如何做好前端工程化和静态资源管理 - 無雄 - 博客园

我们是如何做好前端工程化和静态资源管理 随着互联网的发展&#xff0c;我们的业务也日益变得更加复杂且多样化起来&#xff0c;前端工程师也不再只是做简单的页面开发这么简单&#xff0c;我们需要面对的十分复杂的系统性问题&#xff0c;例如&#xff0c;业务愈来愈复杂&…

Mybatis-plus之RowBounds实现分页查询

物理分页和逻辑分页 物理分页&#xff1a;直接从数据库中拿出我们需要的数据&#xff0c;例如在Mysql中使用limit。 逻辑分页&#xff1a;从数据库中拿出所有符合要求的数据&#xff0c;然后再从这些数据中拿到我们需要的分页数据。 优缺点 物理分页每次都要访问数据库&#xf…

常见的6种JavaScript设计模式

常见的6种JavaScript设计模式 构造函数模式 /*** 构造一个动物的函数 */ function Animal(name, color){this.name name;this.color color;this.getName function(){return this.name;} } // 实例一个对象 var cat new Animal(猫, 白色); console.log( cat.getName() );工…

峰度(Kurtosis)和偏度(Skewness)

峰度&#xff08;Kurtosis&#xff09; 定义峰度又称峰态系数&#xff0c;表征概率密度分布曲线在平均值处峰值高低的特征数&#xff0c;即是描述总体中所有取值分布形态陡缓程度的统计量。直观看来&#xff0c;峰度反映了峰部的尖度。这个统计量需要与正态分布相比较。 公式定…

1.27

测试程序提出问题并解决转载于:https://www.cnblogs.com/JustinTimberlake/p/10028870.html

javascript设计模式系列 - LukeLin - 博客园

javascript设计模式系列 创建型&#xff1a; 1.抽象工厂模式&#xff08;Abstract Factory&#xff09; 2.构建者模式&#xff08;Builder&#xff09; 3.工厂方法模式&#xff08;Factory Method&#xff09; 4.原型模式&#xff08;Prototype&#xff09; 5.单例模式&a…

多功能嵌入式解码软件(2)

多功能嵌入式解码软件&#xff08;2&#xff09; 验证类库 通信协议 下面进行一个示例&#xff1a; 下位机需要向上位机发送3中数据帧&#xff0c;数据帧以功能码来识别&#xff0c;每种数据帧的协议如下3个表格所示&#xff0c;上位机需要把这些数据按照协议解码出来&#xff…

vue项目如何打包扔向服务器 - Hi-Sen - 博客园

当我们将 vue 项目完成后&#xff0c;面临的就是如何将项目进行打包上线&#xff0c;放到服务器中。我使用的是 vue-cli&#xff08;simple&#xff09; 脚手架&#xff0c;所以就讲一下如何将项目进行打包&#xff0c;并放到 tomcat 上。 如果是 vue-cli (非 simple 脚手架…

MySQL备份与恢复-mysqldump备份与恢复

这片博文主要用来介绍MySQL的备份与恢复&#xff1a; MySQL的备份形式可以分为如下几种&#xff1a; 热备----即不停机备份冷备----需要关闭MySQL&#xff0c;然后备份其数据文件。&#xff08;停机备份一般是直接拷贝其datadir目录&#xff09;温备----在线备份&#xff0c;对…

第六次实训作业异常处理

第六次实训作业异常处理 编写一个类ExceptionTest&#xff0c;在main方法中使用try-catch-finally语句结构实现&#xff1a;在try语句块中&#xff0c;编写两个数相除操作&#xff0c;相除的两个操作数要求程序运行时用户输入&#xff1b;在catch语句块中&#xff0c;捕获被0除…

k8s学习笔记-调度之Affinity

Kubernetes中的调度策略可以大致分为两种 一种是全局的调度策略&#xff0c;要在启动调度器时配置&#xff0c;包括kubernetes调度器自带的各种predicates和priorities算法&#xff0c;具体可以参看上一篇文章&#xff1b; 另一种是运行时调度策略&#xff0c;包括nodeAffinity…