日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ueditor跨域上传图片文件(基于jsp框架、tomcat)

發(fā)布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ueditor跨域上传图片文件(基于jsp框架、tomcat) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

額,好久沒有用到ueditor了,因為現(xiàn)在的相關(guān)工作很少涉及到富文本編輯;最近臨時帶了一個項目,里面要用到富文本編輯器,而且文件要統(tǒng)一上傳到文件服務(wù)器上保存;應(yīng)為以前用過ueditor就試著在網(wǎng)上著一些跨域保存的資料,找了半天都是只言片語說不清楚,最后摸索了兩天,綜合了網(wǎng)上的很多辦法,結(jié)合自己的一些改進,有了這篇文章。

一、文件上傳項目的相關(guān)配置:


1、把下載的ueditor解壓到項目的WebRoot目錄下;如下圖所示:


2.導(dǎo)入ueditor的jar包到項目中,下載的jar是有問題的,需要自己編譯一下,我把修改后的jar包上傳了,下載地址為:http://download.csdn.net/download/u012613903/9741412

3.修改config.json(ueditor/jsp/config.json)

修改內(nèi)容如下:

/* 前后端通信相關(guān)的配置,注釋只允許使用多行方式 */ {/* 上傳圖片配置項 */"imageActionName": "uploadimage", /* 執(zhí)行上傳圖片的action名稱 */"imageFieldName": "upfile", /* 提交的圖片表單名稱 */"imageMaxSize": 51200000, /* 上傳大小限制,單位B */"imageAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp",".swf"], /* 上傳圖片格式顯示 */"imageCompressEnable": true, /* 是否壓縮圖片,默認是true */"imageCompressBorder": 1600, /* 圖片壓縮最長邊限制 */"imageInsertAlign": "none", /* 插入的圖片浮動方式 */"imageUrlPrefix": "http://localhost:9999/ods", /* 圖片訪問路徑前綴 */"imagePathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上傳保存路徑,可以自定義保存路徑和文件名格式 *//* {filename} 會替換成原文件名,配置這項需要注意中文亂碼問題 *//* {rand:6} 會替換成隨機數(shù),后面的數(shù)字是隨機數(shù)的位數(shù) *//* {time} 會替換成時間戳 *//* {yyyy} 會替換成四位年份 *//* {yy} 會替換成兩位年份 *//* {mm} 會替換成兩位月份 *//* {dd} 會替換成兩位日期 *//* {hh} 會替換成兩位小時 *//* {ii} 會替換成兩位分鐘 *//* {ss} 會替換成兩位秒 *//* 非法字符 \ : * ? " < > | *//* 具請體看線上文檔: fex.baidu.com/ueditor/#use-format_upload_filename *//* 涂鴉圖片上傳配置項 */"scrawlActionName": "uploadscrawl", /* 執(zhí)行上傳涂鴉的action名稱 */"scrawlFieldName": "upfile", /* 提交的圖片表單名稱 */"scrawlPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上傳保存路徑,可以自定義保存路徑和文件名格式 */"scrawlMaxSize": 2048000, /* 上傳大小限制,單位B */"scrawlUrlPrefix": "", /* 圖片訪問路徑前綴 */"scrawlInsertAlign": "none",/* 截圖工具上傳 */"snapscreenActionName": "uploadimage", /* 執(zhí)行上傳截圖的action名稱 */"snapscreenPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上傳保存路徑,可以自定義保存路徑和文件名格式 */"snapscreenUrlPrefix": "", /* 圖片訪問路徑前綴 */"snapscreenInsertAlign": "none", /* 插入的圖片浮動方式 *//* 抓取遠程圖片配置 */"catcherLocalDomain": ["127.0.0.1", "localhost", "img.baidu.com"],"catcherActionName": "catchimage", /* 執(zhí)行抓取遠程圖片的action名稱 */"catcherFieldName": "source", /* 提交的圖片列表表單名稱 */"catcherPathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上傳保存路徑,可以自定義保存路徑和文件名格式 */"catcherUrlPrefix": "", /* 圖片訪問路徑前綴 */"catcherMaxSize": 2048000, /* 上傳大小限制,單位B */"catcherAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 抓取圖片格式顯示 *//* 上傳視頻配置 */"videoActionName": "uploadvideo", /* 執(zhí)行上傳視頻的action名稱 */"videoFieldName": "upfile", /* 提交的視頻表單名稱 */"videoPathFormat": "/ueditor/jsp/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上傳保存路徑,可以自定義保存路徑和文件名格式 */"videoUrlPrefix": "http://localhost:9999/ods", /* 視頻訪問路徑前綴 */"videoMaxSize": 102400000, /* 上傳大小限制,單位B,默認100MB */"videoAllowFiles": [".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"], /* 上傳視頻格式顯示 *//* 上傳文件配置 */"fileActionName": "uploadfile", /* controller里,執(zhí)行上傳視頻的action名稱 */"fileFieldName": "upfile", /* 提交的文件表單名稱 */"filePathFormat": "/ueditor/jsp/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上傳保存路徑,可以自定義保存路徑和文件名格式 */"fileUrlPrefix": "http://localhost:9999/ods", /* 文件訪問路徑前綴 */"fileMaxSize": 51200000, /* 上傳大小限制,單位B,默認50MB */"fileAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp",".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"], /* 上傳文件格式顯示 *//* 列出指定目錄下的圖片 */"imageManagerActionName": "listimage", /* 執(zhí)行圖片管理的action名稱 */"imageManagerListPath": "/ueditor/jsp/upload/image/", /* 指定要列出圖片的目錄 */"imageManagerListSize": 20, /* 每次列出文件數(shù)量 */"imageManagerUrlPrefix": "http://localhost:9999/ods", /* 圖片訪問路徑前綴 */"imageManagerInsertAlign": "none", /* 插入的圖片浮動方式 */"imageManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp"], /* 列出的文件類型 *//* 列出指定目錄下的文件 */"fileManagerActionName": "listfile", /* 執(zhí)行文件管理的action名稱 */"fileManagerListPath": "/ueditor/jsp/upload/file/", /* 指定要列出文件的目錄 */"fileManagerUrlPrefix": "http://localhost:9999/ods", /* 文件訪問路徑前綴 */"fileManagerListSize": 20, /* 每次列出文件數(shù)量 */"fileManagerAllowFiles": [".png", ".jpg", ".jpeg", ".gif", ".bmp",".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg",".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid",".rar", ".zip", ".tar", ".gz", ".7z", ".bz2", ".cab", ".iso",".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".pdf", ".txt", ".md", ".xml"] /* 列出的文件類型 */}


關(guān)注上文中的紅色字體,我所修改的就是要給圖片和文件加的前綴;改前綴指向?qū)嶋H保存圖片的項目。



4.在圖片上傳的項目(使用ueditor的項目)中的jsp頁面中引入ueditor的js


5.初始化ueditor,并加入響應(yīng)的修改,修改后的初始化ueditor的語句如下:




二、文件服務(wù)器端項目的編寫與配置

1、項目整體配置如下(是一個最簡單的spring項目):


其中UeditorController為圖片上傳保存的controller類、CORSFilter為處理出現(xiàn)跨域問題的過濾器、UUIDGenerater是一個生成沒有-的UUID的工具類(因為文件要通過url來下載的話就不能出現(xiàn)中文,所以這里我偷懶直接用uuid來保存文件名了);files文件是保存上傳的文件的地方。


2.UeditorController中上傳文件的邏輯實現(xiàn)

import java.io.File; import java.util.HashMap; import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile;import com.emep.ods.util.UUIDGenerater;@Controller @RequestMapping("/ueditor") public class UeditorController {@RequestMapping("/testfile")@ResponseBodypublic Map<String, Object> testFile(@RequestParam(value = "upfile", required = false) MultipartFile file,HttpServletRequest request) {//value的名字一定要叫upfile,這是ueditor寫好的參數(shù)名稱String path = request.getSession().getServletContext().getRealPath("files");//獲得files目錄的絕對路徑String fileName = file.getOriginalFilename();//獲得上傳文件的實際名稱String[] types = fileName.split("\\.");String type = types[types.length - 1];type = "." + type;//獲得文件的后綴名String targetFileName = UUIDGenerater.generateUUId() + type;File targetFile = new File(path, targetFileName);if (!targetFile.exists()) {targetFile.mkdirs();}try {file.transferTo(targetFile);//保存文件} catch (Exception e) {e.printStackTrace();}// 圖片和文件的返回要求// original: "1.png"// size: "86846"// state: "SUCCESS"// title: "1484710315158045904.png"// type: ".png"// url: "/ueditor/jsp/upload/image/20170118/1484710315158045904.png"Map<String, Object> result = new HashMap<String, Object>();result.put("state", "SUCCESS");// UEDITOR的規(guī)則:不為SUCCESS則顯示state的內(nèi)容result.put("url", "/files/" + targetFileName);result.put("title", file.getOriginalFilename());result.put("original", file.getOriginalFilename());result.put("size", file.getSize());result.put("type", type);return result;} }

3.CORSFilter代碼

import java.io.IOException;import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse;public class CORSFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest,ServletResponse servletResponse, FilterChain filterChain)throws IOException, ServletException {HttpServletResponse httpResponse = (HttpServletResponse) servletResponse;httpResponse.addHeader("Access-Control-Allow-Origin", "*");//接收任意域名跨域,當(dāng)然實際情況要指定幾個信任的域名httpResponse.addHeader("Access-Control-Allow-Headers", "X_Requested_With");filterChain.doFilter(servletRequest, servletResponse);}@Overridepublic void destroy() {} }
要在web.xml中把這個filter加進去,怎么加我就不說了···



好。到這里就大功告成了,我測試的結(jié)果如下...


上傳后再ueditor中查看html代碼,發(fā)現(xiàn)圖片的地址是指向文件服務(wù)項目的,然后查看文件服務(wù)項目的files文件夾



ok,就到這里了!

總結(jié)

以上是生活随笔為你收集整理的ueditor跨域上传图片文件(基于jsp框架、tomcat)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。