**#java—web工程下载文件编码问题**
使用IntelliJ IDEA编写web工程中下载图片或者文件,如果因为文件名是中文而显示出__.jpg/__.doc等等可以试一下以下代码:
response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(pp.getShowname(), "UTF-8"));;
我做的是下载图片时,我的英文或者数字名的图可以下载下来就是完整的名字,而中文的就不行,所以试了一下上面的方法就可以了。
我的具体代码如下:
public String download() throws Exception{
StudentService ss=new StudentService();
int id = Integer.parseInt(sss);
Stupic pp=ss.queryStupicById(id);
ServletContext application=ServletActionContext.getServletContext();
InputStream is=new FileInputStream(new File(application.getRealPath(pp.getSavepath())));
HttpServletResponse response=ServletActionContext.getResponse();
/*此处为核心代码:转化成中文的实例*/
response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(pp.getShowname(), "UTF-8"));
// System.out.println(pp.getShowname());
OutputStream os=response.getOutputStream();
IOUtils.copy(is,os);
return null;
};
这个就是最后的结果图