首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

web放在linux下边,下载文件时,保存对话框中的中文会没掉

2013-10-12 
web放在linux下面,下载文件时,保存对话框中的中文会没掉?本帖最后由 play100 于 2013-09-05 20:29:13 编辑

web放在linux下面,下载文件时,保存对话框中的中文会没掉?
本帖最后由 play100 于 2013-09-05 20:29:13 编辑 用struts2做的一个WEB应用,基于apache + tomcat
下载的action配置如下

<action name="download" class="fanry.action.ActionDownload">  
            <result name="success" type="stream">  
                <param name="contentType">application/octet-stream</param>  
                <param name="inputName">inputStream</param>  
                <param name="contentDisposition">attachment;filename="${fileName}"</param>  
                <param name="bufferSize">4096</param>  
            </result>  
        </action> 


在windows下面下载文件,显示的名称是正确的;
但把项目部署到linux下面后,如当下面文件名为"中国123.txt"时,网页上弹出的保存对话框里只有 "123.txt"

求帮助!!! web?linux?下载?中文
[解决办法]
/**
 * 下载文件
 * @param filePath 文件路径(物理路径)
 * @param fileName 源文件名称
 */
public void downLoadFile(String filePath, String fileName) {
File file = new File(filePath);
if (!file.exists() 
[解决办法]
 file.isDirectory()) {
return;
}
InputStream input =null;
OutputStream output = null;
try {
input = new FileInputStream(file);
output = response.getOutputStream();
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
byte[] buffer = new byte[1024];
int i = 0;
while ((i = input.read(buffer)) != -1) {
output.write(buffer, 0, i);
}
} catch (Exception e) {} finally {
try {
if(null !=output) {
output.flush();
output.close();
}
if(null !=input) {
input.close();
}
} catch (Exception e) {}
}
}

下载就是response的事情,lz用这个代码试一下吧
[解决办法]
引用:
/**
 * 下载文件
 * @param filePath 文件路径(物理路径)
 * @param fileName 源文件名称
 */
public void downLoadFile(String filePath, String fileName) {
File file = new File(filePath);
if (!file.exists() 
[解决办法]
 file.isDirectory()) {
return;
}
InputStream input =null;
OutputStream output = null;
try {
input = new FileInputStream(file);
output = response.getOutputStream();
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
byte[] buffer = new byte[1024];
int i = 0;
while ((i = input.read(buffer)) != -1) {
output.write(buffer, 0, i);
}
} catch (Exception e) {} finally {
try {
if(null !=output) {
output.flush();
output.close();
}
if(null !=input) {
input.close();
}
} catch (Exception e) {}
}
}

下载就是response的事情,lz用这个代码试一下吧
fileName.getBytes("ISO-8859-1");jiu xingle
[解决办法]
还是乱码的问题呗,
blog.csdn.net/rzleilei/article/details/10019527

热点排行