隨筆-31  評(píng)論-257  文章-0  trackbacks-0
              上幾天,要做Jsp文件上傳,上網(wǎng)Google了幾下,發(fā)現(xiàn)多是用JspSmartUpload組件來實(shí)現(xiàn)上傳,于是想將其應(yīng)用到我的Struts應(yīng)用里頭,剛開始不太會(huì)用,隨便寫了個(gè)表單頁面,就一個(gè)文件表單域,上傳,OK,正確接收,但當(dāng)應(yīng)用到自已的項(xiàng)目里時(shí),發(fā)現(xiàn)其它表單的信息出現(xiàn)亂碼了,中文問題又出來了。
              但是確定是加上了這句:enctype="multipart/form-data",還是不行,文件是可以正確獲取了,只是其它的Text Input表單傳來的中文怎么轉(zhuǎn)換編碼都不行,不能正確還原中文,我用的是UTF-8編碼。我想,這應(yīng)該是JspSmartUpload的問題吧,上網(wǎng)找了找,很多都沒說過這問題,有很多文章都是說教你怎么用JspSmartUpload上傳文件等等的,但那些例子都是只上傳一個(gè)文件表單,沒有混合上傳與普通表單的信息。
              郁悶了半天,既然是組件的問題,我想到想看看修改它的源碼來實(shí)現(xiàn)中文混合表單上傳,我下載下來的都是Jar包的,都是已編譯好的,又沒時(shí)間上網(wǎng)找源碼了,只好反編譯一下,修改,再重新編譯。唉,編譯下來的類里面的變量名等等都很混亂,看起來有點(diǎn)麻煩,沒辦法了,一直跟蹤運(yùn)行下去吧,順騰摸瓜了。把幾個(gè) Class反編譯下來后,找到了根源,在SmartUpload.class里,在upload函數(shù)下,找到這里 String s11 = new String(m_binArray,m_startData,(m_endData - m_startData) + 1); 經(jīng)測(cè)試,這里是返回表單內(nèi)容信息的String,看看他的構(gòu)造函數(shù),它沒有定義該String的Chartset,所以當(dāng)然中文會(huì)出現(xiàn)亂碼了,用的是默認(rèn)的西方ISO8859-1的編碼,所以中文在這里沒有得到正確轉(zhuǎn)換。為了方便起建,我在該類定義了一個(gè)靜態(tài)變量 : private static String charset = "iso8859-1"; 現(xiàn)寫個(gè)get  set方法,在剛先的表單內(nèi)容的String里改一下,使用四個(gè)參數(shù)的構(gòu)造函數(shù),最后那個(gè)參數(shù)為編碼字符集參數(shù),寫成 String s11 = new String(m_binArray,m_startData,(m_endData - m_startData) + 1,charset);  OK,在使用時(shí),將SmartUpload構(gòu)造出來時(shí),再設(shè)置它將要使用的字符集,之后使用混合上傳,一切OK.
          posted on 2008-07-29 12:37 姜大叔 閱讀(885) 評(píng)論(5)  編輯  收藏 所屬分類: Java

          評(píng)論:
          # re: JspSmartUpload 中文問題! 2008-10-02 21:02 | jelin
          ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

          下載 SmartUpload 上傳組件(中文終極解決版) 即可

          http://download.csdn.net/source/640739

          ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
            回復(fù)  更多評(píng)論
            
          # re: JspSmartUpload 中文問題![未登錄] 2009-02-25 08:26 | 東哥
          ksn ksn   回復(fù)  更多評(píng)論
            
          # re: JspSmartUpload 中文問題! 2009-04-25 22:48 | 一個(gè)人
          樓主正解啊!謝謝  回復(fù)  更多評(píng)論
            
          # re: JspSmartUpload 中文問題! 2009-06-19 14:21 | qqf
          感謝 感謝啊  回復(fù)  更多評(píng)論
            
          # re: JspSmartUpload 中文問題! 2009-08-01 15:52 | today
          用UFOUpload(UFOUpload組件用于文件上傳的Jsp Web Server端的類)組件能從根本上解決亂碼問題,效果很好,發(fā)布網(wǎng)址:www.gm365.com 。  回復(fù)  更多評(píng)論
            
          主站蜘蛛池模板: 贡觉县| 桂林市| 鞍山市| 柳林县| 宁波市| 赫章县| 渑池县| 济南市| 寿光市| 楚雄市| 固原市| 手机| 凤台县| 南汇区| 集贤县| 驻马店市| 闽侯县| 九江县| 股票| 曲松县| 柞水县| 桐城市| 米林县| 固安县| 汝阳县| 惠水县| 萍乡市| 常德市| 英吉沙县| 黑河市| 临清市| 宜城市| 汉源县| 噶尔县| 甘德县| 台南县| 平安县| 桐梓县| 达州市| 兴山县| 湘潭县|