ssm学习笔记-三种文件上传方式

首先需要引入commons-fileupload

<dependency>
     <groupId>commons-fileupload</groupId>
     <artifactId>commons-fileupload</artifactId>
     <version>1.3.3</version>
</dependency>

MultipartFile方式

示例代码:

    @RequestMapping(value = "", method = RequestMethod.POST)
    @ResponseBody
    public String postUpload(HttpServletRequest request, MultipartFile file) throws Exception
    {
        String path = request.getSession().getServletContext().getRealPath("upload");
        String fileName = file.getOriginalFilename();
        File dir = new File(path, fileName);
        if (!dir.exists()) {
            dir.mkdirs();
        }
        file.transferTo(dir);
        return "ok";
    }

CommonsMultipartFile方式

示例代码:

    @RequestMapping(value = "", method = RequestMethod.POST)
    @ResponseBody
    public String postUpload(@RequestParam(required = false) CommonsMultipartFile file, HttpServletRequest request) throws Exception
    {
        String path = request.getSession().getServletContext().getRealPath("upload");
        String fileName = file.getOriginalFilename();
        File dir = new File(path);
        if (!dir.exists()) {
            dir.mkdirs();
        }
        OutputStream os = new FileOutputStream(dir + "/" + fileName);
        InputStream ins = file.getInputStream();
        byte[] bytes = new byte[1024];
        int temp;
        while ((temp = ins.read(bytes)) != -1) {
            os.write(bytes, 0, temp);
        }
        os.close();
        ins.close();
        return "ok";
    }

CommonsMultipartResolver方式

示例代码:

    @RequestMapping(value = "", method = RequestMethod.POST)
    @ResponseBody
    public String postUpload(HttpServletRequest request) throws Exception
    {
        CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(
                request.getSession().getServletContext()
        );
        if (commonsMultipartResolver.isMultipart(request)) {
            MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest)request;
            MultipartFile file = multipartHttpServletRequest.getFile("file");
            String path = request.getSession().getServletContext().getRealPath("upload");
            String fileName = file.getOriginalFilename();
            File dir = new File(path, fileName);
            if (!dir.exists()) {
                dir.mkdirs();
            }
            file.transferTo(dir);
        }
        return "ok";
    }

猜你喜欢

转载自www.cnblogs.com/caohui/p/9712616.html