在网上搜的帖子,关于这个问题的解决方法有很多。
第一种:fileName= new String(fileName.getBytes("UTF-8"),"GBK");
用这种方式能解决大部分乱码,但如果文件名中有特殊字符和标点符号有时候会转不过来。
第二种:我使用的是这种办法,测试已经通过
/**在设置时需要设置一下上传事件
*upload_start_handler : UploadStart,
*动态传参数,解决文件名中文乱码问题
**/
function uploadStart(file) {
try {
/* I don't want to do any file validation or anything, I'll just update the UI and return true to indicate that the upload should start */
var progress = new FileProgress(file, this.customSettings.progressTarget);
//progress.setStatus("Uploading...");
progress.setStatus("上传中...");
progress.toggleCancel(true, this);
this.setPostParams({
'fileName':encodeURIComponent(file.name)
});
}
catch (ex) {
}
return true;
}
在action中使用
fileName = URLDecoder.decode(fileName, "UTF-8");
第三种:配置web.config配置文件这种方法我没试,不知道行不行。