ssm上传下载Excel文件

上传步骤:
  • 1.在applicationContext.xml中添加配置

    
        
        
        
        
        
        
    
  • 2.在jsp页面添加上传按钮
    1. 编写conteoller接口
// 上传Excel
    @RequestMapping(value = "/sc/{sid}", method = RequestMethod.POST)
    public String sc(@PathVariable("sid") String sid, @RequestParam("file") MultipartFile file, HttpServletRequest request,
                     Model model) throws IOException {

        // uploads文件夹位置
        String rootPath = request.getSession().getServletContext().getRealPath("WEB-INF/upload");
        // 原始名称
        String originalFileName = file.getOriginalFilename();
        // 新文件名
        String newFileName = "sliver"+ originalFileName;

        // 新文件
        File newFile = new File(rootPath + newFileName);
        // 判断目标文件所在目录是否存在
        if( !newFile.getParentFile().exists()) {
            // 如果目标文件所在的目录不存在,则创建父目录
            newFile.getParentFile().mkdirs();
        }
        System.out.println(newFile);
        // 将内存中的数据写入磁盘

        try {
            file.transferTo(newFile);
        } catch (IOException e) {

            return "fail";
        } catch (IllegalStateException e) {

            return "fail";
        }

        Guoc guoc = new Guoc();
        guoc.setUrl(newFileName);
        guoc.setSid(sid);
        studentService.insertguoc(guoc);

        return "success";

    }
下载Excel步骤
  • 1.前台发送请求
  • 2.编写controller
    @RequestMapping(value = "/xz", method = RequestMethod.GET)
    public void down(String gid,HttpServletRequest request, HttpServletResponse response) throws Exception{ 
              //根据id查询存在数据库的文件名称
        Guoc guoc = studentService.selectguocid(gid);
        String url = guoc.getUrl(); //文件名称

        System.out.println(url);
        //获取资源目录下的文件 这个url就是文件名  就可以找到文件夹下面的这个文件
        String fileName = request.getSession().getServletContext().getRealPath("WEB-INF/upload")+url;
        //获取输入流
        InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));
        //假如以中文名下载的话
        String filename = url;
        //转码,免得文件名中文乱码
        filename = URLEncoder.encode(filename,"UTF-8");
        //设置文件下载头
        response.addHeader("Content-Disposition", "attachment;filename=" + filename);
        //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
        response.setContentType("multipart/form-data");
        BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
        int len = 0;
        while((len = bis.read()) != -1){
            out.write(len);
            out.flush();
        }
        out.close();
    }
````

你可能感兴趣的:(ssm上传下载Excel文件)