如果不想使用wangEditor自带的上传图片功能,也可以集成其他上传插件,例如`plupload`。集成其他第三方上传插件和集成`plupload`的做法基本一致,不再一一赘述了。
----
注意,初级程序员或者之前没有使用过`plupload`的使用者,建议先单独做一个demo页面,尝试使用`plupload`,做出基本的上传、显示功能。先不要集成到编辑器中,有错误也好单独排插。以下文档可供参考:
- [plupload官网](http://www.plupload.com/)
- [plupload使用介绍](http://www.cnblogs.com/2050/p/3913184.html)
- [plupload常用功能demo演示](http://chaping.github.io/plupload/demo) (可查看demo网页的源码,学习如何配置)
- [plupload文档](http://chaping.github.io/plupload/doc)
----
下面就讲解如何在wangEditor编辑器中使用plupload。
**第一步,下载`plupload`**
可进入[plupload官网](http://www.plupload.com/)下载,也可以点击[这里](https://github.com/wangfupeng1988/wangEditor/tree/master/test/plupload/lib)下载(不保证是最新版),下载之后,保留如下三个文件待用。
![](https://box.kancloud.cn/2016-03-05_56dad36142989.png)
**第二步,集成到编辑器**
看如下代码演示,**代码中注释非常清楚,请仔细查阅**:
```html
<div id="div1">
<p>请输入内容...</p>
</div>
<!--引用jquery-->
<script type="text/javascript" src="../../dist/js/lib/jquery-1.10.2.min.js"></script>
<!--引用plupload.full.min.js-->
<script type="text/javascript" src="lib/plupload/plupload.full.min.js"></script>
<!--引用wangEditor.js-->
<script type="text/javascript" src="../../dist/js/wangEditor.js"></script>
<script type="text/javascript">
// 封装console.log
function printLog(title, info) {
window.console && console.log(title, info);
}
// ------- 配置上传的初始化事件 -------
function uploadInit () {
// this 即 editor 对象
var editor = this;
// 编辑器中,触发选择图片的按钮的id
var btnId = editor.customUploadBtnId;
// 编辑器中,触发选择图片的按钮的父元素的id
var containerId = editor.customUploadContainerId;
//实例化一个上传对象
var uploader = new plupload.Uploader({
browse_button: btnId, // 选择文件的按钮的id
url: '/upload', // 服务器端的上传地址
flash_swf_url: 'lib/plupload/plupload/Moxie.swf',
sliverlight_xap_url: 'lib/plupload/plupload/Moxie.xap',
filters: {
mime_types: [
//只允许上传图片文件 (注意,extensions中,逗号后面不要加空格)
{ title: "图片文件", extensions: "jpg,gif,png,bmp" }
]
}
});
//存储所有图片的url地址
var urls = [];
//初始化
uploader.init();
//绑定文件添加到队列的事件
uploader.bind('FilesAdded', function (uploader, files) {
//显示添加进来的文件名
$.each(files, function(key, value){
printLog('添加文件' + value.name);
});
// 文件添加之后,开始执行上传
uploader.start();
});
//单个文件上传之后
uploader.bind('FileUploaded', function (uploader, file, responseObject) {
//注意,要从服务器返回图片的url地址,否则上传的图片无法显示在编辑器中
var url = responseObject.response;
//先将url地址存储来,待所有图片都上传完了,再统一处理
urls.push(url);
printLog('一个图片上传完成,返回的url是' + url);
});
//全部文件上传时候
uploader.bind('UploadComplete', function (uploader, files) {
printLog('所有图片上传完成');
// 用 try catch 兼容IE低版本的异常情况
try {
//打印出所有图片的url地址
$.each(urls, function (key, value) {
printLog('即将插入图片' + value);
// 插入到编辑器中
editor.command(null, 'insertHtml', '<img src="' + value + '" style="max-width:100%;"/>');
});
} catch (ex) {
// 此处可不写代码
} finally {
//清空url数组
urls = [];
// 隐藏进度条
editor.hideUploadProgress();
}
});
// 上传进度条
uploader.bind('UploadProgress', function (uploader, file) {
// 显示进度条
editor.showUploadProgress(file.percent);
});
}
// ------- 创建编辑器 -------
var editor = new wangEditor('div1');
editor.config.customUpload = true; // 配置自定义上传的开关
editor.config.customUploadInit = uploadInit; // 配置上传事件,uploadInit方法已经在上面定义了
editor.create();
</script>
```
详细的代码,可参见[https://github.com/wangfupeng1988/wangEditor/tree/master/test/plupload/test.html](https://github.com/wangfupeng1988/wangEditor/tree/master/test/plupload/test.html)
- 关于wangEditor
- 遇到问题如何解决和提问【重要】
- 开始使用
- 下载
- 创建页面
- 生成编辑器(使用ID)
- 生成编辑器(使用element)
- 调整尺寸
- 销毁与恢复
- 一个页面多个编辑器
- 内容处理
- 初始化内容
- 获取内容
- 追加内容
- 清空内容
- 用 editor.$txt 做其他内容处理
- onchange事件
- 禁用/启用
- 参数配置
- 自定义菜单
- 自定义颜色、字体、字号
- 自定义表情
- 切换语言
- 百度地图key
- 菜单栏吸顶
- 配置全屏的z-index
- 关闭浏览器打印log
- 关闭过滤javascript
- 关闭粘贴过滤样式
- 只粘贴纯文本
- 插入代码-配置默认语言
- 自定义编辑器样式
- 自定义颜色
- 自定义菜单UI
- 自定义表格、引用、代码的样式
- 代码高亮样式
- 图片上传
- 使用前必读
- 支持情况
- 配置说明
- log提示辅助排错
- 后台代码示例
- C#
- java - 例1
- java - 例2
- php
- nodejs
- python
- 自定义上传事件
- 集成plupload插件
- 集成七牛云存储
- 跨域上传
- 上传图片出错时的解决步骤
- 使用模块定义
- 使用require.js
- 使用seajs
- 使用webpack
- 插件开发
- 对象结构
- 常用API
- 全局API
- 对象API
- 基础API
- 选区API
- 命令API
- 扩展一个菜单
- 『缩进』菜单
- 『行高』菜单
- 『插入符号』菜单
- 开发一个插件
- 常见问题
- 关于markdown
- 关于上传附件
- 关于背景图片
- 关于显示压缩图片
- 集成到React
- 集成到angular
- 集成到vue.js
- 如何避免与项目中的css冲突
- xss过滤
- 如何插入视频链接
- 关于mobile端编辑器
- 查看源码第一行有空格