当文件大小小于8k时,文件名显示正确, 当超过8k时,无法显示,修改文件后缀后,打开文件,数据完全输出。怎么做
response.reset();
OutputStream fileoutStream = response.getOutputStream();
hssfWorkbook.write(fileoutStream);
String filename = new String(wbname.getBytes(), "ISO-8859-1");
resp.setContentType("application/vnd.ms-excel,charset=utf-8");
resp.addHeader("Content-Disposition", "attachment;filename=\""+filename+".xls\"");
答案 0 :(得分:2)
在写入OutputStream
之前,您需要添加标题。它适用于文件足够小,因为输出是缓冲的,但从技术上讲,我认为这是一个错误。 HTTP协议要求首先将所有标头发送到客户端,然后再发送到有效负载。一旦将有效负载的第一个字节刷新到套接字,就无法返回并添加标头。