在java web项目中,当文件大小接近4.6MB时,文件下载失败,文件为空
java文件导出。我可以看到文件正在下载,但当它达到近5mb时,它就失败了,下载的文件没有内容。更糟糕的是,它在我本地的笔记本电脑上工作正常,但在公司的服务器上却出现故障。有人能帮忙吗?有什么问题吗?任何想法都欢迎在java web项目中,当文件大小接近4.6MB时,文件下载失败,文件为空,java,download,export,Java,Download,Export,java文件导出。我可以看到文件正在下载,但当它达到近5mb时,它就失败了,下载的文件没有内容。更糟糕的是,它在我本地的笔记本电脑上工作正常,但在公司的服务器上却出现故障。有人能帮忙吗?有什么问题吗?任何想法都欢迎 @RequestMapping(value = "", method = { RequestMethod.GET, RequestMethod.POST }) @ResponseBody public String functionName(HttpServl
@RequestMapping(value = "", method = { RequestMethod.GET, RequestMethod.POST })
@ResponseBody
public String functionName(HttpServletResponse response,RequestObject webRequest) throws Exception {
OutputStream out = null;
String msg = "success";
try{
byte[] byteContent = excelBuilder.exportDataModel(webRequest);
if(byteContent != null){
out = response.getOutputStream();
response.setContentType(MediaType.APPLICATION_OCTET_STREAM.toString());
String fileName = "fileName.xls";
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream;charset=UTF-8");
response.setHeader("Content-disposition", "attachment;filename="+fileName);
out.write(byteContent);
}else{
msg = "Export Error!No Content!";
}
}catch(Exception ex){
msg = "Internal error";
}finally{
if(out != null){
out.flush();
out.close();
}
}
return msg;
}
从您的描述中,我无法分辨您的笔记本电脑和服务器是否在同一网络中,也无法分辨您使用的是哪种协议(http、ftp)。 所以我可以分享我的经验 如果您的笔记本电脑和服务器位于同一网络中,我认为有必要检查服务器的安全配置。如果不是,我认为在你们公司的网络中可能有一个文件大小限制。这通常是由防火墙配置的
我希望这会有所帮助。我们需要查看您用于连接到服务器、下载文件并将其写入本地存储的代码。您应该显示您的代码!对不起,没有说清楚。实际上,当我试图导出一些数据并生成excel文件时,就会发生这种情况。我没有生成文件并下载,而是将文件数据传输到字节数组中,然后将其写入响应中的输出流。实际上,您还没有按照两位评论者的要求发布客户端代码。这是一个JavaWeb项目。我们没有客户。导出请求通过表单提交从jsp页面发送。上面的代码是如何生成文件的,响应表示HttpServletResponse.Thank。这绝对是一个可能的解决办法。是的,我的笔记本电脑和服务器都在公司的内部网络中。我问我的同事这不是防火墙。实际上,当我试图导出一些数据并生成excel文件时,就会发生这种情况。我没有生成文件并下载,而是将文件数据传输到字节数组中,然后将其写入响应中的输出流。