以下是使用若依框架下载文件的代码示例:

@RequestMapping("/download")
public void downloadFile(HttpServletRequest request, HttpServletResponse response) throws IOException {
    String filePath = "/path/to/your/file"; // 文件路径
    String fileName = "example.txt"; // 文件名
    String userAgent = request.getHeader("User-Agent");
    boolean isInternetExplorer = userAgent.contains("MSIE") || userAgent.contains("Trident");
    String encodedFileName;
    if (isInternetExplorer) {
        encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
    } else {
        encodedFileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
    }

    File file = new File(filePath);
    if (file.exists()) {
        response.setContentType("application/force-download");
        response.setHeader("Content-Disposition", "attachment;fileName=\"" + encodedFileName + "\"");
        byte[] buffer = new byte[1024];
        FileInputStream fis = null;
        BufferedInputStream bis = null;
        OutputStream os = null;
        try {
            fis = new FileInputStream(file);
            bis = new BufferedInputStream(fis);
            os = response.getOutputStream();
            int i = bis.read(buffer);
            while (i != -1) {
                os.write(buffer, 0, i);
                i = bis.read(buffer);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (bis != null) {
                bis.close();
            }
            if (fis != null) {
                fis.close();
            }
            if (os != null) {
                os.close();
            }
        }
    }
}

该代码先根据文件路径和文件名获取文件对象,然后根据请求头中的 User-Agent 判断浏览器类型,对文件名进行编码,设置响应头,读取文件内容并输出到响应流中,最后关闭输入输出流

若依框架下载文件代码示例

原文地址: https://www.cveoy.top/t/topic/fHza 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录