UEditor上傳圖片到項目外部目錄-java

相關

百度UEditor是由百度web前端研發部開發所見即所得富文本web編輯器,輕量,可定製,開源基於MIT協議,允許自由使用和修改代碼。

原料

1、ueditor源碼,包括ueditor.jar的源碼
2、ueditor上傳文件路徑配置官方文檔(http://fex.baidu.com/ueditor/#server-path)

需求

查閱官方文檔,上傳的文件存放路徑根據項目根路徑配置,若要使文件存放路徑配置到項目外,使用相對路徑就行
然而對於有些童鞋來說,使用相對路徑../../../..會帶來很多不確定性,項目遷移或文件服務器變動都需對相對路徑進行重新調整,若在window server中跨盤符顯然是無法滿足的

實操

開源的好處就是自己能動手,對源碼進行些擴展以達到自己想要的效果。
學習源碼參考:ueditor文件上傳研究http://asialee.iteye.com/blog/2100187),感謝前人提供肩膀。
代碼詳解上面的文章已經很清楚,這裏儘量簡潔,後面附上github地址。
源碼結構:
源碼結構
源碼修改記錄:(詳見源碼,在ueditor.1.5.0.jar中搜索zrk就能搜索到所有修改的代碼)
本人修改記錄
config.json配置
config.json中添加如下屬性 (一定要添加此屬性):

    "physicsPath":"d:/resource", 

physicsPath :屬性配置文件存放的路徑,不同系統環境如“d:/resource”或“/home/resource”,若需使用ueditor默認配置,physicsPath值置爲“”(空串)即可。

使用:

僅僅完成上面的配置是不夠的,在使用中會圖片是上傳後是無法預覽的,既然文件放在項目路徑外部,想通過當前項目來訪問這些圖片不是好的方式;
既然有將圖片存放外部的需求,文件必然是使用單獨的文件服務來訪問,就需要在返回的路徑前附加文件服務訪問路徑;好在config.json中“imageUrlPrefix”(訪問路徑前綴)可以滿足這個要求(通常在文件存放項目路徑下時我們設置“imageUrlPrefix”當前項目名,使用當前項目路徑訪問文件,文件放存外部後這樣就不可行);

配置說明

“imageUrlPrefix”設置爲文件服務訪問路徑:

"imageUrlPrefix": "http://127.0.0.1:8080/resource", /* 圖片訪問路徑前綴 */

這時config.json是這樣:

{
    /* 上傳圖片配置項 */
    "physicsPath":"d:/home/resource",
    "imageActionName": "uploadimage", /* 執行上傳圖片的action名稱 */
    "imageFieldName": "upfile", /* 提交的圖片表單名稱 */
    "imageMaxSize": 2048000, /* 上傳大小限制,單位B */
    "imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 上傳圖片格式顯示 */
    "imageCompressEnable": true, /* 是否壓縮圖片,默認是true */
    "imageCompressBorder": 1600, /* 圖片壓縮最長邊限制 */
    "imageInsertAlign": "none", /* 插入的圖片浮動方式 */
    "imageUrlPrefix": "http://127.0.0.1:8080/resource", /* 圖片訪問路徑前綴 */
    "imagePathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上傳保存路徑,可以自定義保存路徑和文件名格式 */
    /*此處省略80行,請參考百度ueditor中的config.json, 塗鴉、多圖上傳、視頻上傳、列出目錄的“文件訪問路徑前綴”同“imageUrlPrefix”*/
 }

這裏”imageUrlPrefix”的”http://127.0.0.1:8080/resource“是文件服務器訪問路徑,完整的config.json中的塗鴉、多圖上傳、視頻上傳、列出目錄等都只需要修改相應的前綴。

physicsPath不爲空串時:

文件存放路徑:physicsPath + imagePathFormat
返回給瀏覽器路徑:imageUrlPrefix + imagePathFormat

physicsPath爲空串時:

文件存放路徑:項目根路徑 + imagePathFormat
返回給瀏覽器路徑:imageUrlPrefix + imagePathFormat
*此時imageUrlPrefix 應設置爲項目名

這樣就達到了對路徑的擴展,是否需要將文件存放外部就由“physicsPath”來決定了。

源碼地址:

github:https://github.com/zrk1000/ueditor-extension/tree/master

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章