商务服务
百度ueditor富文本--图片保存路径的配置以及上传到远程服务器
2024-12-04 12:09

百度ueditor富文本--图片保存路径的配置以及上传到远程服务器

我们在上篇文章中学习了  上传图片的配置:

百度ueditor富文本--配置图片上传

在文章的最后 讲到  ueditor 默认设置的 保存图片的 路径 是相对路径,项目相关的。

保存的图片会放在tomcat的webapp目录下的 项目 文件夹中。

F: omcat7webappsROOT

这样的配置 会 导致 重启  tomcat后  保存的 图片  丢失。

修改了config.json中的imagePathFormat参数重新设置图片保存路径,比如:"imagePathFormat": "/https://blog.51cto.com/temp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}",

我们这里在原路径上加了/https://blog.51cto.com/temp。

意思是 项目路径ROOT里的的上一级路径,也就是 路径设置为项目之外,webapp中。

如图:

百度ueditor富文本--图片保存路径的配置以及上传到远程服务器_ueditor

F: omcat7webapps emporjsp좊dimage20170825

百度ueditor富文本--图片保存路径的配置以及上传到远程服务器_跨域_02

需要注意的是:

一、图片保存路径在项目之外最好先新建好文件夹,不然第一次上传图片时创建目录速度会比较慢,会导致首张图片回调找不到图片404。

百度ueditor富文本--图片保存路径的配置以及上传到远程服务器_百度_03

图片保存的路径最好在tomcat的webapp文件夹中,这样我们才能访问到图片。

如果图片不在Webapp目录下的,需要做做映射才能访问图片,回调显示图片才能成功。

UEditor后端保存图片到目标位置之后,返回前端一个url。前端根据url,去取图片,取不到。

如果想把图片存储到 非Webapp等硬盘目录,比如C:/img,需要手动修改controller.jsp的rootPath

图片保存在项目的外面,比如C:/img,前端请求不可能直接访问到,需要做映射。linux系统的话 一般需要做静态资源服务器域名访问。

在良好的web架构中,图片和web站点是分开的,放在不同的服务器上,实现静态资源分离。

也就是说 我们的web 在使用ueditor富文本编辑器时 上传插件上传的图片也应该上传到 图片资源服务器中。

也就是要 上传到远程服务器上, 甚至可能要实现跨域上传。

查询了很多资料之后 发现 主要有两种实现方式:

推荐方式二,方式一实现起来比较复杂,需要一定的理解。

默认使用的controller.jsp是一种很简单的操作,就是把文件流保存到 指定路径下。

如果我们要实现 跨域上传图片到远程服务器的话 必须重写 这个controller,接收文件流之后 上传到远程服务器 ,返回图片地址。

关于接收文件流 上传到远程服务器的 代码思路 可以参考:

java上传文件到远程服务器(一)---HttpURLConnection方式java上传文件到远程服务器(二)---HttpClient方式java上传文件到远程服务器七牛云

JSP页面中在初始化UE的JS中 需要重新设置一下每个插件的调用事件,如下:

简单介绍:

UE.Editor.prototype._bkGetActionUrl=UE.Editor.prototype.getActionUrl; 是用来获取Action的,照写就行,然后就是下面的 UE.Editor.prototype.getActionUrl=function(action){....}  这里面的if语句,就是用来设置自定义action路由的,这里叫Controller。

这里的action也就是 我们选中的 插件的 动作,对应的名称可以在 config.json中查找。

如图:

百度ueditor富文本--图片保存路径的配置以及上传到远程服务器_图片上传_04

大家可以在这个步骤上进行 修改 使用 我们前面提供的三种方式 修改 图片上传。

上传完成之后 返回图片的地址 即可。

需要注意的是  这里返回的 图片地址使用json格式,格式必须 符合 ueditor的格式规范,否则 插件无法识别 回显图片。

这里你应该参考http://fex.baidu.com/ueditor/#dev-request_specification官方文档里面的 后端请求参数-请求规范,官方有介绍了,返回参数的格式,格式中json的key就是对应了类ReturnUploadImage里面的属性。转换后格式应该是这样的,要严格按照文档上面的格式{"original":"5dfcfea3e3b442bda3972053266c3bd3.jpg","state":"SUCCESS","title":"5dfcfea3e3b442bda3972053266c3bd3.jpg","url":"http://www.xxxxx321.com/mmmm/xxxModuleName/20150922/5dfcfea3e3b442bda3972053266c3bd3.jpg"}注:不同的文件上传,返回的属性不一样=======================ReturnUploadImageStart============================================public classReturnUploadImage {private String state;//上传状态SUCCESS 一定要大写private String url;//上传地址private String title;//图片名称demo.jpgprivate String original;//图片名称demo.jpg....getter & setter...}=======================ReturnUploadImage End==============================================这里官方文档也说的很清楚,对应 config、uploadimage、uploadscrawl、uploadvideo、uploadfile....都有各自的格式文档里面这些对应的就是xxxxActionName官方文档截图:

百度ueditor富文本--图片保存路径的配置以及上传到远程服务器_跨域_05

图片上传时调用的接口是在ueditor.config.js中设置的:

我们就想着  能不能直接把这个 改成 远程服务器上的 controller.jsp就可以把图片上传到远程服务器上了。

答案是  可以。

但是 需要做一些处理。

因为我们使用的java版本的ueditor,controller.jsp运行接收图片是需要java环境的,所以我们首先在远程服务器上部署一个tomcat。

然后在tomcat的webapp目录中新建一个ROOT目录。

把config.json和controller.jsp放入其中。

启动tomcat即可。

如图:

百度ueditor富文本--图片保存路径的配置以及上传到远程服务器_远程服务器_06

内容如下:

saveRootPath 和  imagePathFormat 共同决定了 存储的路径 /data/nginx/static/editor/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}。

代码为:

 response.setHeader("Access-Control-Allow-Origin", "http://localhost:8080"); response.setHeader("Access-Control-Allow-Headers", "X-Requested-With,X_Requested_With");

这两句是相对于原controller.jsp新增的。

主要是允许跨域传输。

http://localhost:8080需要修改成与自己web服务器所在的 ip或者域名一致。

我这里是 用本地来测试 所以设置成了http://localhost:8080。

如果不加这两句的话 会报跨域错误,类似于:

启动tomcat后我们发现已经可以访问到 这个controller了。

我这里图片资源服务器是配置有域名的,如果域名是: test.123.com。

tomcat的端口是9003。

直接访问tomcat的端口显示如下:

百度ueditor富文本--图片保存路径的配置以及上传到远程服务器_图片上传_07

如果没有域名的话 直接使用远程ip也可以。

那么 我们就可以在web中配置这个服务器接收接口了。

找到 web项目初始化ueditor使用的ueditor.confi.js。

修改如下:

如图:

百度ueditor富文本--图片保存路径的配置以及上传到远程服务器_百度_08

到这里就配置完成了。

启动web项目,上传图片成功:

百度ueditor富文本--图片保存路径的配置以及上传到远程服务器_跨域_09

然后到 配置的保存图片路径/data/nginx/static/editor/upload/image中查看,成功保存:

百度ueditor富文本--图片保存路径的配置以及上传到远程服务器_远程服务器_10

    以上就是本篇文章【百度ueditor富文本--图片保存路径的配置以及上传到远程服务器】的全部内容了,欢迎阅览 ! 文章地址:http://xiaoguoguo.dbeile.cn/news/2656.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 多贝乐移动站 http://xiaoguoguo.dbeile.cn/mobile/ , 查看更多   
最新新闻
deepseek使用教程 vscode
标题“websocket包”指代的是一个在计算机网络技术中应用广泛的组件或技术包。WebSocket是一种网络通信协议,它提供了浏览器与服
门店拓客系统搭建门店引流管理系统
门店拓客系统开发详询吴经理,门店拓客系统商城,门店拓客管理系统(悦丹系统开发)。在产业互联网的生态下,产业系统中的供应链
初一为什么吃饺子?吃饺子的由来及包饺子小窍门
过年为什么吃饺子?  一是按照古代的习俗,饺子是过年祭祀后食用的食品。过年时,讲究守岁时包,辞岁时吃,即到子时吃,此时为
揭秘AI搜索新生态:DeepSeek与百度的对比分析
近年来,随着人工智能技术的飞速发展,搜索引擎的市场格局开始发生微妙的变化。特别是挑战传统搜索引擎的AI驱动型平台如DeepSeek
百度答题赚钱怎么做?百度答题利用AI辅助赚取稳定收益完整攻略
关键这是一个长期的项目,在圈内很多人收费大部分的价位是300~1000元不等。今天海哥就来拆解如何利用AI进行百度问题获取收益的完
创新智能设备AI助手:无法错过的高效生活必备工具
在快速发展的智能设备市场中,AI助手的创新技术为用户带来了显著的生活改变。最新推出的智能设备——AI助手Pro,不仅具备高效的
超ChatGPT,DeepSeek成全球增速最快AI应用!国产AI黑马是如何炼成的
DeepSeek作为国产AI应用,自2025年1月11日上线以来,全球日活跃用户突破2215万,成为增速最快的AI应用。其成功吸引了芯片巨头如A
上影厂33位老演员,出生50年代,8位美女走出3位影后
原创 DJ雅清 老电影的那些事今天请大家欣赏昔日上影厂33位老演员的明星老照片。他们全都出生于50年代,个个演技精湛,但男星大多
DeepSeek和豆包哪个更适合普通人?用了几个月,说说我的真实感受
我是一名IT软件工程师,在过去几个月里同时体验了国内两款热门AI工具——DeepSeek和豆包,这两者其实对于我来说日常更多应用于模
探究AI工具的无限可能:从绘画到写作,让你的创作更轻松
随着人工智能(AI)技术的迅猛发展,AI工具在艺术创作和内容生成领域展现出不可思议的潜力。从AI绘画到AI写作,我们可以看到越来