Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java HttpServletResponse文件大小超过8k_Java_Servlets_Http Headers_Apache Poi - Fatal编程技术网

java HttpServletResponse文件大小超过8k

java HttpServletResponse文件大小超过8k,java,servlets,http-headers,apache-poi,Java,Servlets,Http Headers,Apache Poi,当文件大小小于8k时,文件名显示正确, 当超过8k时,无法显示,修改文件后缀后,打开文件,数据就完全输出了。怎么办 response.reset(); OutputStream fileoutStream = response.getOutputStream(); hssfWorkbook.write(fileoutStream); String filename = new String(wbname.getBytes(), "ISO-8859-1"); resp.setContentType

当文件大小小于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\"");

在写入
输出流之前,需要添加标题。当文件足够小时,它可以工作,因为输出是缓冲的,但从技术上讲,我认为这是一个bug。HTTP协议要求首先将所有头发送到客户端,然后发送有效负载。一旦有效负载的第一个字节刷新到套接字,您就不能返回并添加头。

在写入
输出流之前,您需要添加头。当文件足够小时,它可以工作,因为输出是缓冲的,但从技术上讲,我认为这是一个bug。HTTP协议要求首先将所有头发送到客户端,然后发送有效负载。一旦有效负载的第一个字节刷新到套接字,您就不能返回并添加头。

这个问题密切相关:这个问题密切相关: