解決swfupload上傳控制元件檔名中文亂碼問題 三種方法
阿新 • • 發佈:2019-02-02
最近公司讓將以前的上傳控制元件升級成可以一次選擇多個檔案的控制元件,目前比較流行的是使用SWFUpload控制元件,這個控制元件的詳細介紹可以參見百度http://baike.baidu.com/view/1332553.htm?fr=ala0_1_1。
在使用這個控制元件批量上傳檔案時發現中文檔名都是亂碼,在網上查了半天,找了幾個辦法,特總結如下:
第一種:fileName= new String(fileName.getBytes("UTF-8"),"GBK");
用這種方式能解決大部分亂碼,但如果檔名中有特殊字元和標點符號有時候會轉不過來。
第二種:我使用的是這種辦法,測試已經通過
- /**在設定時需要設定一下上傳事件
- *upload_start_handler : this.onUploadStart,
- *動態傳引數,解決檔名中文亂碼問題
- **/
- onUploadStart : function(file) {
- var post_params = this.settings.post_params;
- Ext.apply(post_params,{
- 'fileName':encodeURIComponent(file.name)
- });
- this.setPostParams(post_params);
- }
- //在讀取的類中將檔案轉碼即可
- String fName = URLDecoder.decode(fileName, "UTF-8");
第三種:配置web.config配置檔案這種方法我沒試,不知道行不行。