电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

詳解springboot整合ueditor踩過的坑

瀏覽:2日期:2023-05-10 14:07:39

有一天老板突然找我讓我改富文本(一臉懵逼,不過也不能推啊默默地接下了),大家都知道現(xiàn)在的富文本視頻功能都是只有上傳鏈接的沒有從本地上傳這一說(就連現(xiàn)在的csdn的也是)于是我找了好多個,最終發(fā)現(xiàn)百度的ueditor可以。經(jīng)過幾天的日夜,甚至犧牲了周末休息時間開始翻閱資料。。。

廢話不多說,開始教程:

第一步:

去ue官網(wǎng)下載他的源碼

詳解springboot整合ueditor踩過的坑

第二步:

解壓下載的源碼(下載可能會慢,好像需要翻墻下載)然后打開項目把源碼拖進項目的resources/static中去

詳解springboot整合ueditor踩過的坑

第三步

就是重點了由于springboot現(xiàn)在默認(rèn)是不支持jsp的所以jap下的controller.jsp 運行后springboot是找不到路徑的,就會出現(xiàn)富文本存在,而上傳圖片或者視頻的地方會顯示(后端未配置)

詳解springboot整合ueditor踩過的坑

這里要說下:下面就你就要把源碼里面的jsp下有4個jar包,你需要復(fù)制到項目中然后add進去,或者你找maven地址也可,但是不建議因為浪費時間。

第四步:由于無法獲取地址,那么我們就自己寫一個controller進行映射,怕大家懶,我這里拷貝我的提供使用

@RestController@RequestMapping('/Test')public class UeTestController { /** * 上傳配置:即不走config.json,模擬config.json里的內(nèi)容,解決后端配置項不正確,無法上傳的問題 * @return */ @RequestMapping(value = '/ueditor/config',method = RequestMethod.GET) @ResponseBody public String uploadConfig(String action,String noCache) { //注意以下:imageActionName 根據(jù)這個ActionName的名字來上傳接口:比如我現(xiàn)在設(shè)置的上傳文件接口為下面那個:multipleCarouselFiles //imageUrlPrefix:是【點擊確認(rèn)之后,加載的資源路徑】所屬服務(wù)器中獲取資源 System.out.println('進入config===================='); System.out.println('action='+action+' callback='+noCache); String s = '{n' +' 'basePath': 'C:/',n' +' 'imageActionName': '/Test/multipleCarouselFiles',n' +''imageFieldName': 'upfile', n' +''imageMaxSize': 2048000, n' +''imageAllowFiles': ['.png', '.jpg', '.jpeg', '.gif', '.bmp'], n' +''imageCompressEnable': true, n' +''imageCompressBorder': 1600, n' +''imageInsertAlign': 'none', n' +''imageUrlPrefix': 'http://localhost:8082/images/upload',n' +''imagePathFormat': '/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}', /* 上傳視頻配置 */n' +' 'videoActionName': '/Test/multipleCarouselFiles', /* 執(zhí)行上傳視頻的action名稱 */n' +' 'videoFieldName': 'upfile', /* 提交的視頻表單名稱 */n' +' 'videoPathFormat': '/ueditor/jsp/upload/video/{yyyy}{mm}{dd}/{time}{rand:6}', /* 上傳保存路徑,可以自定義保存路徑和文件名格式 */n' +' 'videoUrlPrefix': 'http://localhost:8082/images/upload', /* 視頻訪問路徑前綴 */n' +' 'videoMaxSize': 102400000, /* 上傳大小限制,單位B,默認(rèn)100MB */n' +' 'videoAllowFiles': [n' +' '.flv', '.swf', '.mkv', '.avi', '.rm', '.rmvb', '.mpeg', '.mpg',n' +' '.ogg', '.ogv', '.mov', '.wmv', '.mp4', '.webm', '.mp3', '.wav', '.mid']/* 上傳視頻格式顯示 */ }'; return s; } /** * Ueditor上傳文件 * 這里以上傳圖片為例,圖片上傳后,imgPath將存儲圖片的保存路徑,返回到編輯器中做展示 * @param file * @return */ @RequestMapping(value = '/multipleCarouselFiles',method = RequestMethod.POST) @ResponseBody public String uploadimage(@RequestParam('upfile') MultipartFile file, HttpServletRequest request, HttpServletResponse response) { //服務(wù)協(xié)議 String Scheme =request.getScheme(); //服務(wù)器名稱 String ServerName= request.getServerName(); //服務(wù)器端口 int Port= request.getServerPort(); String url=Scheme+'://'+ServerName+':'+Port; Results results=new Results(); //判斷非空 if (file.isEmpty()) { return '上傳的文件不能為空'; } try { //1、先獲取jar所在同級目錄 File path = new File(ResourceUtils.getURL('classpath:').getPath()); if(!path.exists()){path = new File(''); } System.out.println('獲取jar所在同級目錄 path:'+path.getAbsolutePath()); //2、如果上傳目錄為/static/images/upload/,則可以如下獲取: File upload = new File(path.getAbsolutePath(),'static/images/upload/New_img/'); if(!upload.exists()){upload.mkdirs(); } System.out.println('上傳目錄為/static/images/upload/中---upload url:'+upload.getAbsolutePath()); //測試MultipartFile接口的各個方法 System.out.println('[文件類型ContentType] -:'+file.getContentType()); System.out.println('[文件組件名稱Name] -:'+file.getName()); System.out.println('[文件原名稱OriginalFileName] -:'+file.getOriginalFilename()); System.out.println('[文件大小] -:'+file.getSize()); System.out.println(this.getClass().getName()+'圖片路徑:'+upload); // 如果不存在該路徑就創(chuàng)建 String uploadPath=upload+''; File dir = new File(uploadPath + file.getOriginalFilename()); // 文件寫入 file.transferTo(dir); //在開發(fā)測試模式時,得到的地址為:{項目根目錄}/target/static/images/upload/ //在打包成jar正式發(fā)布時,得到的地址為:{發(fā)布jar包目錄}/static/images/upload/ results.setMessage('上傳單個文件成功'); } catch (Exception e) { e.printStackTrace(); results.setMessage('上傳單個文件失敗'); } String result = ''; if(!file.isEmpty()) { String originalFileName = file.getOriginalFilename(); // 這里寫你的文件上傳邏輯 // String imgPath = fileUtil.uploadImg(file); String imgPath = '/New_img/'+originalFileName; result = '{n' + ' 'state': 'SUCCESS',n' + ' 'url': '' + imgPath + '',n' + ' 'title': '' + originalFileName + '',n' + ' 'original': '' + originalFileName + ''n' + '}'; } return result; }}

下面附上一個老哥給我發(fā)的上傳文件用的一個類Results

import com.fasterxml.jackson.annotation.JsonProperty;/** ueditor 使用類* */public class Results { private Object Data; private String Message; private boolean Status; @Override public String toString() { return 'Results{' +'Data=' + Data +', Message=’' + Message + ’’’ +', Status=' + Status +’}’; } @JsonProperty('Data') public Object getData() { return Data; } public void setData(Object data) { Data = data; } @JsonProperty('Message') public String getMessage() { return Message; } public void setMessage(String message) { Message = message; } @JsonProperty('Status') public boolean isStatus() { return Status; } public void setStatus(boolean status) { Status = status; }}

下面就要修改ueditor中最重要的映射地址位置(ueditor.config.js)也就是說他為什么能加載你寫的testcontroller就是這個地方在起作用(附圖):

詳解springboot整合ueditor踩過的坑

如果你從上面跟我路徑一直,可以直接復(fù)制我的地址此時你在運行項目就會進入自己寫的controller上面其實我都一步寫好了,其實在我做的過程中還遇到了

詳解springboot整合ueditor踩過的坑

(圖是我找的,但是問題一模一樣),具體什么原因就是因為沒有配置好圖片上傳的路徑說到這我要提一下你引入富文本的地方,需要做一個這個配置

詳解springboot整合ueditor踩過的坑

其他位置不要動就可以,到這夠詳細(xì)吧,做這個真是做的我腦袋都大了,好在有一個老哥幫了我一把,非常感謝,還有什么問題留言就可,看到就會回

到此這篇關(guān)于詳解springboot整合ueditor踩過的坑的文章就介紹到這了,更多相關(guān)springboot整合ueditor內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 连续油炸机,全自动油炸机,花生米油炸机-烟台茂源食品机械制造有限公司 | 深圳办公室装修,办公楼/写字楼装修设计,一级资质 - ADD写艺 | 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 山东风淋室_201/304不锈钢风淋室净化设备厂家-盛之源风淋室厂家 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 世纪豪门官网 世纪豪门集成吊顶加盟电话 世纪豪门售后电话 | 营养师网,营养师考试时间,报名入口—网站首页 | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | 混合气体腐蚀试验箱_盐雾/硫化氢/气体腐蚀试验箱厂家-北京中科博达 | 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 浙江宝泉阀门有限公司 | 世界箱包品牌十大排名,女包小众轻奢品牌推荐200元左右,男包十大奢侈品牌排行榜双肩,学生拉杆箱什么品牌好质量好 - Gouwu3.com | 粘度计NDJ-5S,粘度计NDJ-8S,越平水分测定仪-上海右一仪器有限公司 | 标策网-专注公司商业知识服务、助力企业发展 | 昆明挖掘机修理厂_挖掘机翻新再制造-昆明聚力工程机械维修有限公司 | 橡胶接头_橡胶软接头_套管伸缩器_管道伸缩器厂家-巩义市远大供水材料有限公司 | 重庆磨床过滤机,重庆纸带过滤机,机床伸缩钣金,重庆机床钣金护罩-重庆达鸿兴精密机械制造有限公司 | 广州展览制作|展台制作工厂|展览设计制作|展览展示制作|搭建制作公司 | 电动不锈钢套筒阀-球面偏置气动钟阀-三通换向阀止回阀-永嘉鸿宇阀门有限公司 | 电渗析,废酸回收,双极膜-山东天维膜技术有限公司 | 岸电电源-60HZ变频电源-大功率变频电源-济南诚雅电子科技有限公司 | 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 合肥通道闸-安徽车牌识别-人脸识别系统厂家-安徽熵控智能技术有限公司 | 礼至家居-全屋定制家具_一站式全屋整装_免费量房设计报价 | Copeland/谷轮压缩机,谷轮半封闭压缩机,谷轮涡旋压缩机,型号规格,技术参数,尺寸图片,价格经销商 CTP磁天平|小电容测量仪|阴阳极极化_双液系沸点测定仪|dsj电渗实验装置-南京桑力电子设备厂 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 流变仪-热分析联用仪-热膨胀仪厂家-耐驰科学仪器商贸 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 工控机,嵌入式主板,工业主板,arm主板,图像采集卡,poe网卡,朗锐智科 | 宜兴市恺瑞德环保科技有限公司| 芜湖厨房设备_芜湖商用厨具_芜湖厨具设备-芜湖鑫环厨具有限公司 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | 绿叶|绿叶投资|健康产业_绿叶投资集团有限公司 | 富森高压水枪-柴油驱动-养殖场高压清洗机-山东龙腾环保科技有限公司 | 硬度计_影像测量仪_维氏硬度计_佛山市精测计量仪器设备有限公司厂家 | 细胞染色-流式双标-试剂盒免费代做-上海研谨生物科技有限公司 | 土壤检测仪器_行星式球磨仪_土壤团粒分析仪厂家_山东莱恩德智能科技有限公司 | ph计,实验室ph计,台式ph计,实验室酸度计,台式酸度计 | 台湾Apex减速机_APEX行星减速机_台湾精锐减速机厂家代理【现货】-杭州摩森机电 | 北京浩云律师事务所-企业法律顾问_破产清算等公司法律服务 | 全自动翻转振荡器-浸出式水平振荡器厂家-土壤干燥箱价格-常州普天仪器 | 上海风淋室_上海风淋室厂家_上海风淋室价格_上海伯淋 |