[Spring-SpringMVC-MyBatis] 05- 文件上传下载 -下载篇


prtyaa
prtyaa 2023-12-27 15:15:37 49888
分类专栏: 资讯

下载相对于上传来说简单许多,分为三步走

1.后台定义展示能被下载的内容

@RequestMapping("/loadFiles")
public String loadFiles(HttpServletRequest req) {
    // 找到所有能下载的文件名
    File dir = new File(req.getServletContext().getRealPath("/upload"));
    String[] list = dir.list();
    // 保存到作用域
    req.setAttribute("list", list);
    // 页面跳转
    return "download";
}

2.页面书写

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <center>
        <c:forEach items="${list}" var="f">
            <a href="download?name=${f}">${f}</a><br>
        </c:forEach>
    </center>
</body>
</html>

3.点击要下载的文件名称实现文件下载

@RequestMapping("/download")
public void download(String name, HttpServletRequest req, HttpServletResponse resp) throws Exception {
    // 找到要下载的文件输入流
    InputStream is = new FileInputStream(
            new File(req.getServletContext().getRealPath("/upload"), name));
    // 找到输出流
    OutputStream os = resp.getOutputStream();
    // 设置响应头
    resp.setContentType("application/octet-stream");
    resp.setHeader("Content-Disposition", "attachment;filename=" + name);
    // 文件复制
    IOUtils.copy(is, os);
}

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=31397
赞同 0
评论 0 条
prtyaaL2
粉丝 1 发表 2553 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2956
【软件正版化】软件正版化工作要点  2875
统信UOS试玩黑神话:悟空  2839
信刻光盘安全隔离与信息交换系统  2733
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1267
grub引导程序无法找到指定设备和分区  1231
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  165
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  163
点击报名 | 京东2025校招进校行程预告  163
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  159
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
如何玩转信创开放社区—从小白进阶到专家 15
信创开放社区邀请他人注册的具体步骤如下 15
方德桌面操作系统 14
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
我有15积分有什么用? 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
信创再发力!中央国家机关台式计算机、便携式计算机批量集中采购配置标准的通知 8

加入交流群

请使用微信扫一扫!