相信大家用到文件上傳時,用到SmartUpload包,總會有各種亂碼問題,不管是文件名還是字符。
網上有很多方法。一開始是改字符集爲GBK能解決一定的問題。
然後
直到一個大神的出現把SmartUpload的jar包改寫完之後完美地解決了中文亂碼問題。
參考:http://www.iteye.com/topic/243162
然而有時候卻會出現包的一些引用錯誤,特別是自己改包的過程尤爲複雜
利用JD-GUI和JCLASSLIB可以改掉字節碼然後生成新的包。
參考:http://blog.csdn.net/hexin373/article/details/6669813
然後我發現,這樣容易引起在封裝jar包的時候出現各種各種的classpath錯誤,找不到符號等等
這裏告訴大家一個最簡單地方法:
1、在自己工程中創建jsp.smart.upload的包
2、用JD-GUI打開Class文件
3、把所有CLASS文件的代碼複製過去
3、修改一些錯誤
如:
while (i < this.m_totalBytes) {
int j;//2、移動到這裏
try {
this.m_request.getInputStream();
j = this.m_request.getInputStream().read(this.m_binArray, i,
this.m_totalBytes - i);
} catch (Exception localException) {
throw new SmartUploadException("Unable to upload.");
}
// int j;<---1、這是源代碼,註釋掉
i += j;
}
處理掉幾個好像上面這樣的問題的時候問題就解決了!
祝你幸福!