Ueditor 文件上传配置 - 文件大小超出
1 前端配置项
前端需要配置 serverUrl 参数,修改 ueditorconfigjs 里的 serverUrl 参数,改成服务器端路径,参考:URL + 'php/controllerphp'
2 后端配置项
后端配置项在 php/configjson 里配置,不同的上传有各自的配置项。
修改上传路径的参数是 imagePathFormat ,改成你的文件夹路径即可。
这篇文章主要介绍了vue引入ueditor及node后台配置详解,现在分享给大家,也给大家做个参考。
最近公司的某个客户要用上我们公司的产品,他的后台管理里的富文本编辑器要求有点多,开始打算用Quill,但是发现Quill根本满足不了他的需求。在调研了市面上的富文本编辑器后,最后似乎只剩了百度的ueditor。虽然很丑~~~,不过没关系,政府网站和这种效果更
vue引入ueditor
步骤
百度ueditor下载,随便哪个版本就好(本文章以php版为例),不需要特别全面功能的可以考虑下UM喽
将对应的文件夹放到static中
修改前端vue部分引用的ueditorconfgjs,设置路径windowUEDITOR_HOME_URL = "/static/utf8-php/"
windowUEDITOR_HOME_URL = "/static/utf8-php/"
var URL = windowUEDITOR_HOME_URL || getUEBasePath();
/
配置项主体。注意,此处所有涉及到路径的配置别遗漏URL变量。
/
windowUEDITOR_CONFIG = {
//为编辑器实例添加一个路径,这个不能被注释
UEDITOR_HOME_URL: URL
// 服务器统一请求接口路径
, serverUrl: "http://localhost:3000/ueditor/ue"
// 下面忽略编写vue文件,我已经把static配置到webpack的路径里了,自己可以相应更改,ueditor中的各项方法可以在自己下载的百度ueditor包的indexhtml中找。
<template>
<p class="hello">
<script id="editor" type="text/plain"></script>
<button @click="show">你敢点一下吗?</button>
</p>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {
editor: null
}
},
methods: {
show () {
consolelog(thiseditorgetContent())
}
},
mounted () {
require('static/utf8-php/ueditorconfigjs')
require('static/utf8-php/ueditorallminjs')
require('static/utf8-php/lang/zh-cn/zh-cnjs')
require('static/utf8-php/ueditorparseminjs')
thiseditor = windowUEgetEditor('editor')
},
destroyed () {
thiseditordestroy()
}
}
</script>注意事项
在步骤3中的路径一定要有最后一个"/"
步骤3中的serverUrl写成对应的服务端地址
node后端处理
express 实现
网上有人已经实现了express版的,使用express的有福了。不过我直接用他的是不能直接用的,在浏览器中报": unexcepected ",我将他的代码改了一下,不让它在返回配置是重定向,而是直接返回一个jsonp,jsonp内容设置为百度的ueditor包中的php文件下的configjson,记得用正则表达式或者直接用手把注释去掉,json是没有注释的。
这时你可能发现不报错了,但是上传会错误,报404。其实已经上传成功了,只是没有正确的加载,因为返回的路径只是路径,不是完整的url,就会请求到前端服务域下。(例如"http://localhost:8080/")。此时修改configjson中"imageUrlPrefix": "http://localhost:3000",就可以将路径补充完整。跨域问题自己解决哈-----
resjsonp(configjson)
给configjson的imageUrlPrefix加后端域
koa实现
这时个比较精巧的库,而且将在v3中去掉了generator写法,generator现在已经渐渐不被支持,所以使用async写法吧。我主要用了await-busboy这个库,实现文件处理。
实现判断
const ActionType = ctxqueryaction
// 当ActionType为config时返回与express中一样的json
// 当为uploadimage或uploadfile时处理
处理上传
const parse = require('await-busboy')
const parts = parse(ctx)
let part,
stream,
tmp_name,
file_path,
filename
while ((part = await parts)) {
if (partlength) {
// 此处解析到form的fields
consolelog({ key: part[0], value: part[1] })
} else {
// 此处解析到文件并以可读流形式返回,通过nodejs官方API存储
if(ActionType === 'uploadimage' && img_typeindexOf(pathextname(partfilename)) >= 0 ){
filename = 'pic_'+ (new Date())getTime() + '_' + partfilename
file_path = pathjoin(img_path, filename)
} else if (ActionType === 'uploadfile'){
filename = 'file_'+(new Date())getTime()+'_'+partfilename
file_path = pathjoin(files_path, filename)
}
stream = fscreateWriteStream(pathjoin(static_path,file_path))
partpipe(stream)
tmp_name = partfilename
}
// 返回json要引用koa-jsonp哦~~上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
使用webpack打包处理bundlejs文件过大的问题
在javascript中如何实现填充默认头像
JavaScript的6种正则表达式(详细教程)
视频上传大小超出
ueditor/PHP/configjson 按需修改 videoMaxSize ,默认是100Mb
phpini 配置中按需配置 upload_max_filesize , post_max_size , memory_limit
配置完成重载Nginx 或 Apache
重启后输出PHPinfo查看是否成功
1页面<head>里增加以下代码
2页面<body>里增加以下代码
打开浏览器,输入相应地址,一个漂亮的编辑器就出现了,但表情和上传文件这块还需要更改一下配置
修改配置,增加上传
打开editor_configjs文件,修改URL的值
保存,刷新一下页面,表情是不是可以出来了?
文件上传默认用的是ueditor/server/upload/php/upphp进行上传的,如果用jsp上传,需要修改两个地方
修改ueditor/dialogs/image/imagehtml页面里第304行和ueditor/dialogs/wordimage/wordimagehtml页面第82行,改为使用upjsp进行上传,这里面用的是apache的fileupload组件,所以要导入apache commons组件中的fileupload和io这两个jar包
5
修改ueditor/server/jsp/upjsp,指定文件的保存路径
Editor的配置可以分为系统默认配置和用户自定义配置两种类型。系统默认配置分散在各个对应的核心或者插件文件之中,对用户不可见。当用户注释掉自定义配置时起作用。用户自定义配置包括两种类型,一种位于editor_configjs文件之中,优先级高于系统默认配置;另一种位于实例化编辑器时传入的参数中,优先级最高。默认情况下,UEditor在editor_congfigjs注释掉了所有可以省略的配置项,采用系统默认配置,若取消注释,则以该配置项为准;未注释的配置项要求用户必需按照项目实际填写。
以下是自己定义的一个简单配置:
<script type="text/javascript">
// 自定义的编辑器配置项,此处定义的配置项将覆盖editor_configjs中的同名配置
var editorOption = {
//这里可以选择自己需要的工具按钮名称,此处仅选择如下四个
toolbars:[['FullScreen', 'Source', 'Undo', 'Redo']]
//更多其他参数,请参考editor_configjs中的配置项
};
</script>
不太明白您的问题,如果配置百度编辑器,可以下载后把整个文件放到项目的一个单独的文件夹中,编辑器初始化UEgetEditor('editor');这样就可以了,获取编辑器内容用js :var val = UEgetEditor('editor')getContent();给编辑器赋值:UEgetEditor('editor')setContent(“这是内容”),url的配置请您描述清楚点
0条评论