【发布时间】:2013-05-24 12:11:39
【问题描述】:
我有一个包含文件的数据表和用于下载所选文件的按钮。
如果文件名带有西里尔符号,浏览器会显示“未知文件类型” 例子: 我有文件“асдасд.png”,我点击下载 浏览器响应
有我的下载方法
public void download(Files file) {
try {
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
externalContext.setResponseHeader("Content-Type", "application/x-download");
externalContext.setResponseHeader("Content-Length", file.getFileContent().length+"");
externalContext.setResponseHeader("Content-Disposition", "attachment;filename=\"" + file.getFilename() + "\"");
externalContext.getResponseOutputStream().write(file.getFileContent());
facesContext.responseComplete();
} catch (IOException e1) {
e1.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
}
我很确定我需要将文件名编码为 UTF-8,但我不知道如何... 请帮忙。
【问题讨论】: