最近遇见UEditor 在开发环境能够正常图片上传回显,但是jar包部署到linux环境图片无法上传回显问题。
这里只是本人调通能够正常使用,现在只展示修改内容,不会台详细介绍修改的原因。
该项目部署到linux环境,分布式部署。目前正常使用
感谢 :https://blog.csdn.net/yuanchengmm/article/details/100731826 主要借鉴该博主的方式,结合自己的项目。
直接进入正题:
- 修改index.html 中 ueditor 上传图片调用的方法, 这里直接修改为自己写的方法
//实例化编辑器
var ue = UE.getEditor('editor');
console.log(ue, 'uegetEditor--------')
ue.ready(function() {
var fheight = getUrlKey('fheight');
ue.setHeight(fheight+0);
DJXX_ID = getUrlKey('DJXX_ID');
var lt = location+'';
serverurl = lt.replace('plugins/ueditor/index.html?fheight='+fheight+'&DJXX_ID='+DJXX_ID,'');
getHcContent(DJXX_ID);
UE.Editor.prototype._bkGetActionUrl = UE.Editor.prototype.getActionUrl;
UE.Editor.prototype.getActionUrl = function(action) {
if (action == 'uploadimage' || action == 'uploadscrawl' || action == 'uploadimage') {
return '/uploadFiles/euditUpload'; //在这里返回我们实际的上传图片地址
} else {
return this._bkGetActionUrl.call(this, action);
}
}
})
2.在我们所写的上传方法中需要注意的地方
/*
upfile 应该与config .json中的 “imageFieldName” 保持一致
*/
public Map<String, Object> euditUpload(MultipartFile upfile, String filetype, String fileywid,String fileName) {
Map<String, Object> map = new HashMap<String, Object>();
//上传文件
Map<String, Object> ret = new HashMap<String, Object>();
SFTPUtil sftpUtil = SFTPUtil.getSFTPUtil();
ret = sftpUtil.uploadFile(upfile, filetype,fileName);
// 图片访问的url
map.put("url", ipPort+ret.get("fileUrl")+File.separator+cloudFile.getFileAactualaddress());
//是否上传成功
map.put("state", "SUCCESS");
//文件原名称
map.put("original", "");
//现在文件名称
map.put("title",cloudFile.getFileName());
return map;
}
3.修改 config.json 这里的图片访问路径我们已经只要去掉就行,因为已经在自己写的上传中对图片回显的url进行处理,这里的“
imageUrlPrefix” 不去掉会重复拼接。
4.修改 ConfigManager 的中 initEnv(),这里是为了在linux 环境下读取到 config.json 文件
private void initEnv () throws FileNotFoundException, IOException {
File file = new File( this.originalPath );
if ( !file.isAbsolute() ) {
file = new File( file.getAbsolutePath() );
}
this.parentPath = file.getParent();
//String configContent = this.readFile( this.getConfigPath() );
// 修改config.json 的读取方式
String configContent = this.filter(IOUtils.toString(this.getClass().getClassLoader().getResourceAsStream("config.json")));
try{
JSONObject jsonConfig = new JSONObject( configContent );
this.jsonConfig = jsonConfig;
} catch ( Exception e ) {
this.jsonConfig = null;
}
}