java下載文件發現在瀏覽器下載前顯示大小是0B,但是實際下載下來是有大小的,且文件也能正常使用。
查閱相關資料,發現瀏覽器實現下載前預知文件大小的方式是通過獲取下載文件的鏈接中的響應頭屬性Content-Length的方式,因此只需要在後臺下載文件的控制器響應頭對象中設置該屬性即可:
HttpServletResponse response File file = new File(filePath); if (!file.exists()) { throw new FileNotFoundException(filePath); } // 設置回顯文件大小 response.setHeader("Accept-Ranges", "bytes"); response.setHeader("Content-Length", String.valueOf(file.length()));