栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SSM文件上传下载

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SSM文件上传下载

1.加jar包(mysl版本不同连接的Jar包就不一样)

2.文件上传html页面



    
    Title


管理员文件上传

文件名:

文件名:

文件名:

文件名:

3 ssm.ml 文件配置(aplication.xmx自行配置)
    
    
        
        
        
        
        
    
4.各个层的代码

5.文件上传Controer(代码)
    @RequestMapping("fileUploads")
    public String upload(HttpServletRequest request) throws IOException {
        // 将当前上下文初始化给 CommonsMutipartResolver (多部分解析器)
        CommonsMultipartResolver multipartResolver =
                new CommonsMultipartResolver(request.getSession().getServletContext());

        // 检查form中是否有 enctype="multipart/form-data"
        if (multipartResolver.isMultipart(request)) {
            // 将request变成多部分request
            MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
            // 获取multiRequest 中所有的文件名
            Iterator iter = multiRequest.getFileNames();
            while (iter.hasNext()) {
                // 一次遍历所有文件
                MultipartFile file = multiRequest.getFile(iter.next().toString());
                if (file != null && file.getOriginalFilename() != "") {
                    //文件格式的判断 文件名的处理省略
                    String fileName = file.getOriginalFilename();
                    
                    String uuid = UUID.randomUUID().toString();
                    String path = request.getSession().getServletContext()
                            .getRealPath("/userFile/") + uuid + "_" + fileName;
                    //需在web下创建一个userFile文件夹(该文件夹下必须有一个子文件)
                    file.transferTo(new File(path));
                    // 上传到数据库
                    filesService.addFile(uuid + "_" + fileName);
                }
            }
        }
        return "index";
    }
6.上传文件(javaWeb第二四六章)

7.文件下载(Controller代码) 7.1html文件



    
    文件下载





文件下载

文件下载

序號 文件名 操作
7.2前端输出文件名(根据数据库的文件名下载)
    @RequestMapping(value = "filesList")
    @ResponseBody
    public String getFilesList() {
        System.out.println("进入filesList_>");

        //调用底层方法取数据获取文件名
        List list = filesService.getFiles();
        String string = JSON.toJSONString(list);
        System.out.println(string);
        return string;
    }
7.3文件下载
    @RequestMapping(value = "fileDowns")
    public void download(HttpServletRequest request, HttpServletResponse response, String filename) throws IOException {
        //checkPay.apk为需要下载的文件
        //String filename = "checkPay.apk";   //我这里使用的是一个固定的文件,方法可以不用写filename参数
        //获取文件的绝对路径名称,apk为根目录下的一个文件夹,这个只能获取根目录文件夹的绝对路径
        String path = request.getSession().getServletContext().getRealPath("userFile") + "\" + filename;
        System.out.println(path);

        //得到要下载的文件
        File file = new File(path);
        if (!file.exists()) {
            response.setContentType("text/html; charset=UTF-8");//注意text/html,和application/html
            response.getWriter().print("");
            response.getWriter().close();
            System.out.println("您要下载的资源已被删除!!");
            return;
        }
        //转码,免得文件名中文乱码
        filename = URLEncoder.encode(filename, "UTF-8");
        //设置文件下载头
        response.addHeader("Content-Disposition", "attachment;filename=" + filename.substring(37));
        //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
        response.setContentType("multipart/form-data");
        // 读取要下载的文件,保存到文件输入流
        FileInputStream in = new FileInputStream(path);
        // 创建输出流
        OutputStream out = response.getOutputStream();
        // 创建缓冲区
        byte buffer[] = new byte[1024]; // 缓冲区的大小设置是个迷  我也没搞明白
        int len = 0;
        //循环将输入流中的内容读取到缓冲区当中
        while ((len = in.read(buffer)) > 0) {
            out.write(buffer, 0, len);
        }
        //关闭文件输入流
        in.close();
        // 关闭输出流
        out.close();
    }

7.5文件下载(javaWeb第六章)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/657941.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号