ueditor 新增支援檔案儲存到檔案伺服器
阿新 • • 發佈:2019-02-10
1、環境
ueditor.jar版本 為1.1.2
2、場景
1、在webapp開發中,需要將富文字中的檔案儲存到單獨的檔案伺服器,而ueditor預設只能在web專案根路徑下。
2、ueditor生成的富文本里圖片路徑是相對路徑,因而在app端無法顯示
3、快速解決方法
4、解決步驟
3、複製原始碼目錄中\jsp\src\到iead專案原始碼中、並把ueditor-xxx.jar依賴去掉
此時的專案結構:
4、ueditor-xxx.jar的原始碼就不解析了。程式碼不多。大家大致看下就能懂了。
5、修改方法com.baidu.ueditor.ConfigManager.getConfig(int type);
在最加入
conf.put(“externalStoragePath”, this.jsonConfig.optString(“externalStoragePath”));
如下
6、在
com.baidu.ueditor.upload.BinaryUploader類中,新增如下方法取檔案儲存位置
private static String getPhysicalPath(Map<String, Object> conf, String savePath, String rootPath) {
String externalStoragePath = (String) conf.get("externalStoragePath");
String physicalPath;
if (externalStoragePath != null && externalStoragePath.trim().length() != 0) {
physicalPath = externalStoragePath;
} else {
physicalPath = rootPath;
}
physicalPath += savePath;
return physicalPath;
}
將該類save(HttpServletRequest request,Map<String, Object> conf)方法中的 String physicalPath = rootPath + savePath; 改成 String physicalPath = getPhysicalPath(conf, savePath, rootPath);
7、將com.baidu.ueditor.upload.Base64Uploader類按上述修改方式進行同樣的修改。
8、大功告成
9、在ueditor/jsp/config配置中新增
"externalStoragePath":"/opt/fileService/img/",/*檔案伺服器路徑*/
"imageUrlPrefix": "http://xxx.xxx.xxx:8080/xxx/xxx", /* 圖片訪問路徑字首-要檔案伺服器的外網地址 */