Spring boot 项目下载jio文件多1K 问题所在

Spring boot 项目下载jio文件多1K 问题所在后来发现所有文件下载之后都会多出几 K 有的更多 String filePath String valueOf resultMap get file path String file name String valueOf resultMap get file name try

大家好,我是讯享网,很高兴认识大家。
后来发现所有文件下载之后都会多出几K 有的更多 

讯享网
讯享网 String filePath = String.valueOf(resultMap.get("file_path")); String file_name = String.valueOf(resultMap.get("file_name")); try( InputStream inStream = new FileInputStream(uploadPath + filePath + id + resultMap.get("file_type")); ){ response.reset(); if (userAgent.contains("MSIE") || userAgent.contains("Trident")) { file_name = java.net.URLEncoder.encode(file_name, "UTF-8"); } else { // 非IE浏览器的处理:   file_name = new String(file_name.getBytes("UTF-8"), "ISO-8859-1"); } response.setCharacterEncoding("UTF-8"); response.setContentType("bin"); response.addHeader("Content-Disposition", "attachment; filename=\"" + file_name + "\""); OutputStream outputStream = response.getOutputStream(); byte[] bytes = new byte[1024]; while (0 != IOUtils.read(inStream, bytes)) { IOUtils.write(bytes, outputStream); } IOUtils.closeQuietly(outputStream); }

后来发现应该是这个地方的问题 


讯享网

byte[] bytes = new byte[1024]; while (0 != IOUtils.read(inStream, bytes)) { IOUtils.write(bytes, outputStream); }

因为文件的大小可能不能整除1024 所以最后的一次循环会把数组中不是文件的部分也写入输出流中,所以下载下来的文件字节就会变大。后来也发现只要是这样下载下来的文件字节大小都能整除1024.

小讯
上一篇 2025-02-11 23:05
下一篇 2025-02-06 09:35

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/56529.html