關(guān)鍵字: Servle 通過(guò) post 方式上傳文件需要設置 form 的 enctype="Multipart/form-data", 但是在 Servlet 中卻無(wú)法通過(guò) request.getParameter("name") 獲得 form 中的參數值。目前用得比較多的上傳組件是 jspSmartUpload 和 commons-fileupload,雖然有人建議我不要使用 jspSmartUpload ,因為它已經(jīng)很久沒(méi)有更新了,而且以后也不會(huì )更新,但我試了通過(guò) commons-fileupload 問(wèn)題沒(méi)辦法獲取到參數值,英文太差啃起文檔來(lái)也覺(jué)得吃力,所以還是又用回了 jspSmartUpload,不過(guò) jspSmartUpload 對中文的支持也有缺陷,參數值中如果包含中文的話(huà)會(huì )成亂碼,試過(guò)了多種編碼都不成功,后來(lái)在 GOOGLE 上找到了修改源方便的方法,將 com.jspsmart.upload.SmartUpload 類(lèi)中 upload() 方法的
String value = new String(m_binArray, m_startData, (m_endData - m_startData) + 1);
改為
String value = new String(m_binArray, m_startData, (m_endData - m_startData) + 1, "UTF-8");
即 可,但苦苦尋覓終究沒(méi)能找到 jspSmartUpload 的源碼。無(wú)耐之下只好用 JadClipse 反編譯了它的 jar 包,沒(méi)想到結果還是很令人滿(mǎn)意的,只需要做小許的修改便可順利運行,接下來(lái)當然就是馬上嘗試修改源碼使它支持中文,黃天不負苦心人,這一次總算沒(méi)有失望 :P