Layui上传下载实现

2023-10-29

Layui+SSM上传下载文件

上传Controller

 //上传
    @RequestMapping("/sc")
    @ResponseBody
    public String sc(@RequestParam("uploadFile")MultipartFile file, HttpServletRequest req, HttpServletResponse resp)throws IllegalStateException, IOException {
        System.out.println("进去上传方法");
        //判断上传文件是否为空,为空就跳转到失败页面
        // 获取文件存储路径(绝对路径)
        //String path=req.getServletContext().getRealPath("file");
        String path="D:\\公寓管理系统\\图片";
        // 获取原文件名
        String filename=file.getOriginalFilename();
        System.out.println(filename);
        // 创建文件实例
        File filepath=new File(path,filename);
        // 如果文件目录不存在,创建目录
        if (!filepath.getParentFile().exists()){
            filepath.getParentFile().mkdirs();
            System.out.println("创建目录" + filepath);
        }
        // 写入文件
        file.transferTo(filepath);
        //ReturnJsonData.returnJson(filename,resp);
        return filename;
    }

页面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<link rel="stylesheet" href="/view/layui/css/layui.css"/>
<body>
<form class="layui-form" enctype="multipart/form-data">
    <div class="layui-form-item">
        <label class="layui-form-label">患者编号:</label>
        <div class="layui-input-inline layui-col-md4">
            <input type="text" name="puser" id="puser" required lay-verify="required" placeholder="患者编号"
                   autocomplete="off" class="layui-input">
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">请选择上传文件类别</label>
        <div class="layui-input-block">
            <select name="uposition" lay-filter="aihao">
                <option value="0">遗传诊断报告</option>
                <option value="1">基因测序报告</option>
                <option value="2">诊断病例</option>
            </select>
        </div>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">请选择上传文件</label>
        <input type="file" name="uploadFile" id="uploadFile">
        <button type="button" class="layui-btn" id="btn">开始上传</button>
    </div>
    <div class="layui-form-item">
        <label class="layui-form-label">备注:</label>
        <div class="layui-input-block">
            <textarea name="remark" placeholder="上传文件信息...100个字符以内" class="layui-textarea"></textarea>
        </div>
    </div>
    <div class="layui-form-item">
        <div class="layui-inline">
            <div class="layui-input-block">
                <button type="submit" class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button>
                <button type="reset" class="layui-btn layui-btn-primary">重置</button>
            </div>
        </div>
    </div>
</form>
</body>
<script src="/view/js/jquery-3.3.1.js"></script>
<script src="/view/layui/layui.js"></script>
<!--ajax编写-->
<script>
​
</script>
</html>

下载

 /**
     * 下载
     * @return
     */
    @RequestMapping("/xz")
    @ResponseBody
    public ResponseEntity<byte[]> download(HttpServletRequest req,String filename,HttpServletResponse resp){
        System.out.println("进入方法");
        //文件地址在项目内部的(目的地地址信息)
        //String upload = req.getServletContext().getRealPath("file");
        //目的仓库在项目之外
/*        List<Map> map=service.xz();
        ReturnJsonData.returnJson(ResultJson.success(map),resp);*/
        Cases c=new Cases();
        c.setCid(3);
        Cases cases=service.findxz(c);
        //上传的前一半
        String upload = "D:\\公寓管理系统\\图片\\";
        filename=cases.getCaddress();
        System.out.println(upload);
        //先拼接具体的位置路径,然后通过file进行建立链接filename
        File file =new File(upload+File.separator+filename);
        if(!file.exists()){//如果不存在文件,直接返回null
            System.out.println(file);
            return null;
        }
        try {
            //创建标头文件对象
            HttpHeaders headers = new HttpHeaders();
            //解决乱码问题
            String downloadfile = new String(filename.getBytes(StandardCharsets.UTF_8),"iso-8859-1");
            //以下载的方式打开文件
            headers.setContentDispositionFormData("attachment", downloadfile);
            //二进制流
            headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
            return new ResponseEntity<byte []>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Layui上传下载实现 的相关文章

随机推荐

  • 【客户案例】云联壹云帮助华北电力大学搭建 AI 训练平台

    客户介绍 华北电力大学是教育部直属全国重点大学 是国家 211 工程 和 985 工程优势学科创新平台 重点建设大学 2017 年 学校进入国家 双一流 建设高校行列 重点建设能源电力科学与工程学科群 全面开启了建设世界一流学科和高水平研究
  • 如何制作属于自己的图片马

    前言 图片马是指代码写入后不破坏图片为前提 图片仍可正常打开 详细过程 自定义一个新的文件夹 文件夹里放入三个文件 一张自己喜欢的图片 自定义php代码文件 批处理文件 super png 用文本编辑器打开也没php代码
  • 深度学习基础知识

    深度学习入门者必看 25个你一定要知道的概念如果你还不了解深度学习有多么强大 不妨就从这篇文章开始 https mp weixin qq com s biz MzIzNjc1NzUzMw mid 2247485927 idx 1 sn 60
  • vue diff 双端比较算法

    文章目录 双端指针 比较策略 命中策略四 命中策略二 命中策略三 命中策略一 未命中四种策略 遍历旧节点列表 新增情况一 新增情况二 删除节点 双端比较的优势 双端指针 使用四个变量 oldStartIdx oldEndIdx newSta
  • 微信小程序页面跳转三种方式

    为了不让用户在使用小程序时造成困扰 微信小程序规定页面路径只能是五层 请尽量避免多层级的交互方式 页面跳转的话就涉及到了多个页面层级 第一种 wx navigateTo OBJECT 保留当前页面 跳转到应用内的某个页面 使用wx navi
  • powershell 自动补全

    我在zsh中使用智能提示 zsh autosuggestions已经习惯了 而在windows中的终端默认没有智能提示 很起来不舒服 那么有没有什么替代呢 安装powershell 7 3 我的windows 10默认安装的是powersh
  • CSDN 改变字体颜色

    将字体改变为红色 font color 900 我是编程ID font 设置字体颜色和字号 font face 华文行楷 color red size 5 本字体是华文行楷 红色 5号大小 font 更多字体参见 https blog cs
  • vue+element+table+render+slot

    前言 最新又回忆并且整理下之前的资料 在这里共享下把 主要是element ui框架里面对table的使用 因为element ui不可以像我们iview框架一样可以直接的在表头里面写render函数 我这里把element ui的tabl
  • Java使用EasyExcel导出数据到Excel文件,以及调用接口下载文件

    1 引入EasyExcel 依赖
  • OAM PDU

    MPLS OAM基本概念 MPLS提供一个完全不依赖于任何三层协议或二层协议的OAM机制 在MPLS的数据平面实现以下功能 1确定LSP的连通性 2 衡量网络利用率以及度量网络性能 3 在链路出现缺陷或故障时迅速进行保护倒换 以便根据与客户
  • hping3的使用

    Hping 是面向命令行的 用于生成和解析 TCP IP 协议数据包汇编 分析的开源工具 常见的应用是 扫描端口 伪造地址和洪水攻击 hping3中的参数如下 h help 显示帮助 v version 显示版本 c count 发送数据包
  • APS计划排程系统之下的MRPII、JIT、TOC三种方式对比分析

    1 生产物流计划的制订方式对比 MRPII采用的是集中式的物料计划方式 建立好产品加工程序 在电脑中确定好准确的订单需求和库存量 对各个生产单元传送生产指令 JIT利用的是看板管理控制方式 按照有限能力计划 逐道工序地倒序传递生产中的取货指
  • librecad二次开发

    1 ui 部份 1 增加主菜单 在这里插入图片描述 https img blog csdnimg cn 65e596109caf43a485505ab1b705ea94 png x oss process image watermark t
  • python 视频处理技术_Python玩转视频处理(三):从视频中提取女神片段

    在上一篇中实现了基于人脸识别提取人物片段的功能 但是在实践过程中发现 如果是一部电影 那么提取到的片段太多了 为了找女神的电影片段 还要在辣么多剪辑中苦苦手工筛选 这个不是一个优秀的程序员应该做的 经过一番实践和探索 发现了一个强大的库 叫
  • 通过pyppeteer来爬取今日头条

    import asyncio from pyppeteer import launch async def main browser await launch page await browser newPage await page se
  • ElementUI的form表单验证注意事项

    ElementUI的form表单验证注意事项 1 踩过的坑 记录一下 验证表单时一直提示必填项未填写 实际已经填写了 2 el form的正确使用流程 el form就是最外层的form表单 做验证有三个必填属性 不填写验证就会不正确 re
  • 烧屏现象对OLED屏幕质量的影响:如何保持画面清晰度?

    OLED Organic Light Emitting Diode 屏幕作为一种高品质 高对比度和鲜艳色彩的显示技术 越来越受到消费者的青睐 然而 一些用户可能会担心OLED屏幕烧屏的问题 本文将探讨OLED屏幕烧屏的原因 如何预防烧屏以及
  • 前端常见的面试题整理

    移动端相关 1 移动端1px边框问题的解决方案 华润集团 使用小数写px值 通过媒体查询判断设备的像素比 DRP 根据不同像素比写不同的边框大小 border border 1px solid ccc media screen and we
  • 基于传统检测算法hog+svm实现图像多分类

    直接上效果图 代码仓库和视频演示b站视频005期 到此一游7758258的个人空间 到此一游7758258个人主页 哔哩哔哩视频 代码展示 数据集在datasets文件夹下 运行01train py即可训练 训练结束后会保存模型在本地 运行
  • Layui上传下载实现

    Layui SSM上传下载文件 上传Controller 上传 RequestMapping sc ResponseBody public String sc RequestParam uploadFile MultipartFile fi