Struts2下载文件流程:
①执行setFileName()
---setFileName()---(转码前)文件名:?¤???? Winter.jpg
fileName = new String(fileName.getBytes("ISO-8859-1"),"UTF-8");
---setFileName()---(转码后)文件名:复件 Winter.jpg
②执行execute()---文件名:复件 Winter.jpg
返回SUCCESS,转到struts.xml:<param name="inputName">targetFile</param>
③执行getTargetFile()
---getTargetFile()---(转码前)文件名:复件 Winter.jpg
if IE: *判断为 IE 浏览器(不用转码)*******getTargetFile()---文件名:复件 Winter.jpg
if FF: this.fileName = URLDecoder.decode(fileName, "ISO-8859-1");
*判断为 FireFox 浏览器(转码后)*******getTargetFile()---文件名:复件 Winter.jpg
④执行getFileName()
------getFileName()---(转码前)文件名:复件 Winter.jpg
if IE: this.fileName = URLEncoder.encode(fileName, "UTF-8");
---判断为IE---(转码后)文件名:%E5%A4%8D%E4%BB%B6+Winter.jpg
---替换空格:fileName = StringUtils.replace(fileName,"+", "%20");
if FF: this.fileName = new String(fileName.getBytes(),"ISO-8859-1");
---判断为FireFox---(转码后)文件名:???? Winter.jpg