jsp fckeditor 上傳中文圖片亂碼問題的解決方案

來源:互聯網
上載者:User

經過我修改ConnectorServlet.java和SimpleUploaderServlet.java兩個檔案,重建fckeditor-java-2.3.jar包,要解決所有的亂碼問題,有3部要修改
1.修改Web容器的字元編碼,如果Web容器用的是Tomcat,則修改conf/server.xml檔案,在兩個Connector中添加“URIEncoding="utf-8"”,我這裡用的是utf-8編碼,所以修改成utf-8,若項目是gb2312編碼,則設定為“URIEncoding="gb2312"”。
2.在“瀏覽伺服器”頁面中上傳檔案時,開啟項目WebRoot中的檔案/editor/filemanager/browser/default/frmupload.html,在head中加一個meta: ,看看該檔案是不是utf-8格式的,若不是,則轉換成utf-8,若你用的不是utf-8則轉成你用的那種編碼,上面charset也設定成你用的編碼
3.修改ConnectorServlet.java和SimpleUploaderServlet.java兩個檔案,我在這兩個檔案中都是加了一個靜態變數encoding,private static String encoding;儲存項目中的編碼, 若在web.xml檔案中沒有給這個變數傳值的話,預設是gb2312,如下代碼if(encoding.isEmpty()){encoding="gb2312";},在ConnectorServlet.java的doGet與doPost的開頭部分加入request.setCharacterEncoding(encoding);將請求的字元集編碼設定成項目中的編碼,在ConnectorServlet.java和SimpleUploaderServlet.java兩個檔案中的DiskFileUpload upload = new DiskFileUpload();後面加入upload.setHeaderEncoding(encoding);告訴FileUpload組件處理時的編碼為項目編碼,在FileItem中,用getString(encoding),這項設定可以解決擷取的表單欄位為亂碼的問題,所以在每個FileItem執行個體後面都執行一次getString(encoding),就告訴FileItem在取值時用的編碼是encoding所設定的編碼。如在ConnectorServlet.java和SimpleUploaderServlet.java兩個檔案中的 FileItem item後面加上一句item.getString(encoding);在FileItem uplFile後面加上一句uplFile.getString(encoding); 接下來就是設定web.xml了,在web.xml中給上面講到的encoding傳值,如下
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
一切都OK了,真正的解決了上傳中文名圖片亂碼問題。
在上面的第3步中,要用到Ant產生jar,這時要注意,把Tomcat安裝目錄下/server/lib裡的catalina-ant.jar複製到項目的/WEB-INF/lib下。開啟build.xml,修改property name="catalina.home"成Tomcat的安裝目錄。修改taskdef name="deploy"、taskdef name="list"、taskdef name="reload"、taskdef name="undeploy"如下:
<taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask">
<classpath refid="compile.classpath"></classpath>
</taskdef>
<taskdef name="list" classname="org.apache.catalina.ant.ListTask">
<classpath refid="compile.classpath"></classpath>
</taskdef>
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask">
<classpath refid="compile.classpath"></classpath>
</taskdef>
<taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask">
<classpath refid="compile.classpath"></classpath>
</taskdef>
然後在Eclipse的Outline視窗中運行Ant的dist,就會產生的新的FCKeditor-2.3.jar。絕對是真實的,共用出來與大家分享,少一個上傳其它檔案的,如RAR的,有添加過這個功能的朋友也拿出來共用下吧
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.