1. 程式人生 > >百度UEditor上傳圖片-再再總結一次

百度UEditor上傳圖片-再再總結一次

本週,CSDN有個網友遇到了百度UEditor上傳問題,最後商定付50元錢,我幫他解決這個問題。
    他最初想自己搞定這個問題,結果搞了好多次,好幾天,還是沒能解決。
    2015年1月17日8:25~2015年1月18日00:24,4個小時終於搞定了這個問題。

 1.總的感悟
    本來預計1個小時,就能解決的,結果硬是花費了4個小時,挺無奈的。 雖說是幫客戶解決一個問題,但實際上一個問題相關的問題,非常多。另外,就是解決這個問題,不是普通的諮詢,已經參與到寫程式碼、單步跟蹤、QQ語音、QQ遠端協助了。
    最讓人鬱悶的是,遠端協助,非常卡,太難受了。一個操作,要等好幾秒,客戶的網路不給力,難道是QQ的服務不行麼。

 2.解決百度UEditor圖片上傳的諸多問題和周邊問題


  2.1 config.json找不到。
   找不到,就是UEditor根據url,在某個目錄下,沒有找到config.json檔案。
   解決這個問題,需要下載UEditor的java原始碼,看看怎麼獲得config檔案的。

   百度UEditor比較坑的地方是,根據URL獲得config檔案,然後圖片儲存的位置竟然也是根據這個url來獲得的。也就是說,配置檔案中的url有2個作用,不是單一的。

  2.2概念混淆。
  這個客戶還沒有畢業,剛剛實習,感覺經驗很欠缺。
  百度UEditor的JS和JSP請求,它們是2套不同的響應規則。一個是靜態資源,另外一個是動態請求。

  2.3config.json可以放到webapp專案的外面,比如C://。

  這個時候,需要手動修改rootPath。

 2.4UEditor的config.js中的獲得config.json的url,可以是個JSP,也可以是.action等動態請求。
   官網的預設例子是,JSP的,它假定了模版用的是JSP,而不是Freemarker。
   而實際專案中,可能用的是Freemarker,這個時候,也需要配置JSP的檢視解析器。

2.5通過寫Controller, 用動態請求獲得config.json這個檔案,最終圖片上傳失敗。
  提示stream為null。
  這個問題,之前總結過了,我們在專案中配置了Sprring上傳大小。
  spring的上傳和百度UEditor的上傳,起了衝突,導致檔案找不到。

2.6放棄動態請求響應,而使用JSP方式響應。

  提示找不到controller.jsp,路徑明明是正確的。
  最後,和自己的本地進行對比,排除了很多情況,才找到原因。
  
springMVC的url-pattern /和/*的區別網上有這樣的回答< url-pattern > / </ url-pattern >   不會匹配到*.jsp,不會進入spring的DispatcherServlet類 < url-pattern > /* </ url-pattern > 會 匹配*.jsp,導致進入spring的DispatcherServlet 類,然後去尋找controller,接著找不到對應的controller所以報錯這讓我很有疑問,如果/不會匹配到*.jsp,那麼是不是*.jpg之類的靜態檔案也不會匹配到(不進入DispatcherServlet),但是事實上要訪問靜態檔案還要加<mvc:resources location="/img/" mapping="/img/**"/>來避開匹配
參考:http://zhidao.baidu.com/link?url=jI3AOESn67AVpalSb7kG0ZUJ37hjeSPyW024VL4mK2YoGtv2IBFU7VUemQM85PLnv0dhVdcL82roCBAC0ggAwb5_izsc91w4MkuScIvK3hu

客戶配的是/*,SpringMVC攔截了JSP請求,但作為Action響應,找不到就404了,最後改成/。

2.7圖片上傳成功了,但是無法回顯。
 UEditor後端儲存圖片到目標位置之後,返回前端一個url。前端根據url,去取圖片,取不到。
圖片儲存在專案的外面,比如C:/img,前端請求不可能直接訪問到,需要做對映。

2.8做了對映,圖片仍然找不到。
後端回顯的url,不帶工程名,比如是/imgs/a.jpg。
但是前端正常訪問需要帶專案名稱,比如ssh。
一種解決辦法是,在後端獲得url之後,或者前端獲得url時,手動加上專案名稱,使得圖片的url有專案名稱,比如
http://a.com/ssh/img/a.jpg

另外一種辦法,是為了方便,直接把Tomcat部署到根目錄下,訪問路徑不帶專案名稱,這樣就避免了上述問題。

2.9Eclipse中部署Tomcat到根目錄,需要手動修改Context Path。
正解: 
右鍵單擊專案名稱 --> Properties --> Web Project Settings --> 把 “Context root” 改成 “/
非正解:右鍵點選專案名--Properties--Tomcat--General,將Context name框中值修改為:/ 
不同網友給出的答案不一樣,可能會版本 之類的因素有關係。
參考資料: 
http://blog.snsgou.com/post-593.html
http://blog.csdn.net/sasoritattoo/article/details/22790297 ;

2.10單個圖片上傳成功之後,多個圖片無法上傳。
  根據瀏覽器控制檯,發現是CSS找不到。 
  這個問題,最終沒有親自去解決,告訴了客戶原因,讓他自己去分析並解決。
  因為最麻煩的單個圖片上傳的整個邏輯、全部流程debug、所有問題都解決了。

3.其它一些感受
  掙點外快很難啊,一方面是一般人不願意付費,另一方面別人願意付費的時候,多是比較棘手的問題。100元錢,覺得太多。
  說實話,如果只是從掙錢的角度,絕對是划不來的。因為很多客戶的問題,都是相對麻煩的,而且你沒有上下文環境,通過遠端debug,解決問題的效率比較低,遠遠沒有本地除錯方便。另外,找你幫忙解決問題的客戶,多是水平和經驗不如你的人,交流起來比較困難,經驗完全不對等,你說的話,客戶理解比較慢。

  之所以,堅持做這種事,是因為可以獲得金錢之外的好處,比如提升自己解決問題的能力,接觸更多的人,也可以提高自己的影響力。說不定,還有機會結識幾個好友。 

相關推薦

UEditor圖片-總結

本週,CSDN有個網友遇到了百度UEditor上傳問題,最後商定付50元錢,我幫他解決這個問題。    他最初想自己搞定這個問題,結果搞了好多次,好幾天,還是沒能解決。    2015年1月17日8:25~2015年1月18日00:24,4個小時終於搞定了這個問題。 1.總的

Spring Boot專案UEditor圖片

業務背景 spring boot專案 實現富文字框 上傳圖片到富文字框中,可新增、編輯 圖片儲存在獨立的FastDFS伺服器上 開發步驟 下載原始碼 我下載的版本是【1.4.3.

20150129 Ueditor 本地圖片失敗的處理

imageUp.jsp 修改配置檔案載入路徑 // 載入配置檔案 // String propertiesPath = request.getSession().getServletContext().getRealPath( currentPath + "config.p

WebUploader圖片圖片回顯編輯,查看

set 唯一性 original 無需 同名 sch nag fin enum 頁面前端使用的是bootstrap,java後端springMVC , 上傳用的WebUploader,先說說上傳圖片,回顯編輯圖片在下一篇 如果僅僅只需要上傳圖片,不需要回顯進行編輯圖片,使用

UEditor呼叫單圖片功能的解決方法

做了個文章編輯頁面,用了百度的UEditor,文章編輯上傳圖片毫無問題,但是封面圖上傳又開始頭疼了,想呼叫UEditor那個單圖片上傳的按鈕功能,但是js這塊實在沒深入研究過,先放下,找找網上可否有解決方案,方案倒是有,但基本都是出自同一源頭,方法都是再建立一個

織夢DEDECMS編輯器Ueditor圖片及下載遠端圖片無法加水印的解決方法

一、開啟 \include\ueditor\php\action_upload.php 找到include "Uploader.class.php";在下面新增:require_once("../../common.inc.php"); require_once("../..

編輯器ueditor圖片失敗問題

我就很好奇,在沒整合到ssh中的時候,我上傳圖片還是很成功的,但是我把整合的jar包導進來的時候,就出現了io問題,然後就百度了很多說過濾器的問題,要重新配置自己的過濾器.但是我把web.xml中的過濾器註釋掉還是會報錯,那就不是過濾器的問題,然後我找到一個文章,雖然他也有說

真正解決編輯器UEditor圖片跨域問題

做前後端分離的專案用到UEditor,把上傳圖片程式拿出來放到了介面程式中,上傳圖片介面已經做了跨域處理,按理說編輯器中上傳圖片應該不會有問題。可是配置好圖片上傳路徑後,執行,開啟除錯,測試一下,報錯了:  找到上傳圖片的程式碼,發現引用的是webuploader.js,先修改下,直接引用web

實現:圖片圖片顯示到頁面上去

一樣使用kindeditor。 本來是想用ajaxFileupload來做上傳,然後再把圖片顯示到頁面上去,但是弄了半天,卡殼了。在ie10上測試的時候根本就不能讀取ajaxFileupload.js檔案。 百度也查了,上面說這是因為ie版本問題。但是改了版本問題,最後還是

UEditor圖片到七牛C#(後端實現)

nco nag manage ora 個人 finall code 七牛存儲 json 由於個人網站空間存儲有所以選擇將圖片統一存儲到七牛上,理由很簡單 1 免費10G 的容量 ,對個人網站足夠用 2 規範的開發者文檔 和完善的sdk(幾乎所有熱門語言sdk)

ueditor圖片

說明 dispatch .com 顯示 出了 表示 tmp encoding 需要 0.前言:我用過ckeditor,kingeditor還是感覺ueditor最好用,功能強大,經常更新。之前因為升級了struts2到2.5的了,原本的kingeditor已經不能共存,於是

使用Ueditor圖片圖片服務器(二)

java tpc linux 是我 jsp 使用 其他 div .cn 上一篇主要寫了前端部分如何配置ueditor的上傳路徑,已經jsp頁面中如何使用ueditor的編輯器功能以及如何配置單獨的圖片上傳功能。 這一篇,我分兩部分:第一部分是搭建圖片服務器以及配置ftp上傳

Ueditor設置圖片自動壓縮

png max-width 分享 initials pan 它的 百度 自動 大於 使用百度Ueditor插入圖片的時候,如果圖片大於你的編輯框寬度,下面會出現滾動條,如下圖: 我們如何設置它的最大寬度為100%呢? 找到ueditor\ueditor.conf

UEditor 圖片等比例縮放

修改ueditor.all.js 16995行 updateTargetElement: function(){}裡的內容為 updateTargetElement: function () { var me = this; var newWidt

ueditor圖片不好用,訪問ueditor中的controller.js變成下載檔案

由於疏忽了web.xml中的servlet配置問題,將urlpattern配置成了"/" <servlet-mapping>     <servlet-name>test</servlet-name>  &

nginx下ueditor圖片502

  註釋掉:這一行 //$this->stateMap['ERROR_TYPE_NOT_ALLOWED'] = iconv('unicode', 'utf-8', $this->stateMap['ERROR_TYPE_NOT_ALLOWED']); 在位置

關於Ueditor圖片到專案之外的目錄

我在把專案部署到雲伺服器上以後,發現每次更新專案壓縮包之前的圖片就沒辦法顯示了 所以我們需要把圖片存到專案資料夾以外的地方,我這次選擇在webapps目錄下建一個images資料夾用來存放 於是我上網查了很多攻略,但是沒有實質性的、快捷的解決我的問題 我就自己檢視官方文件了,從這裡找到了

SpringBoot+Thymeleaf 整合 Ueditor 圖片

此處使用了SpringBoot框架,配備了Thymeleaf模板引擎,所以沒有必要再新增jsp來相容UEditor,可通過修改原始碼滿足需要。下面是詳細教程。 1.新建SpringBoot專案,新增web和thymeleaf包 pom檔案如下:

UEditor圖片與spring mvc圖片衝突問題。

HTML 頁面中的表單最初所採用 application/x-www-form-urlencode 編碼方式,並不滿足檔案上傳的需要,所以,RFC 1867 在此基礎上增加了新的 multipart/form-data 編碼方式以支援基於表單的檔案上傳。通常情況下,按照如下

富文字編輯器 UEditor圖片(好用版)

最近在做富文字編輯器的功能,使用了百度的UEditor,綜合的網上資料(很多不好用)然後自己總結了一下,分享給大家。 下載UEditor 下載Tomcat並進行配置 更改UEditor配置檔案(重點