SpringMVC实现文件上传下载的全过程

OK,SpringMVC实现文件上传下载的全过程可以包含以下几个步骤:

OK,SpringMVC实现文件上传下载的全过程可以包含以下几个步骤:

  1. 添加MultipartResolver配置

在SpringMVC配置文件中,添加MultipartResolver配置,用于处理文件上传的请求。示例代码如下:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="defaultEncoding" value="UTF-8"/>
    <property name="maxUploadSize" value="10485760"/>
    <property name="maxInMemorySize" value="4096"/>
</bean>
  1. 编写上传文件的表单页面

在表单页面中,添加文件上传的表单字段。示例代码如下:

<form method="post" enctype="multipart/form-data" action="/upload">
    <input type="file" name="file"/>
    <input type="submit" value="上传"/>
</form>
  1. 实现文件上传的Controller方法

在Controller中,添加文件上传的方法。该方法中通过MultipartFile对象获取到上传的文件,并保存到指定的文件路径中。示例代码如下:

@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public String upload(@RequestParam("file") MultipartFile file) throws IOException {
    if (!file.isEmpty()) {
        String fileName = file.getOriginalFilename();
        String filePath = "/tmp/" + fileName;
        BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(filePath));
        outputStream.write(file.getBytes());
        outputStream.flush();
        outputStream.close();
        return "文件上传成功:" + filePath;
    } else {
        return "文件上传失败";
    }
}
  1. 实现文件下载的Controller方法

在Controller中,添加文件下载的方法。该方法根据文件路径读取文件,并将文件内容输出到Response中,实现文件下载功能。示例代码如下:

@RequestMapping("/download")
public void download(HttpServletResponse response) throws IOException {
    String filePath = "/tmp/test.txt";
    File file = new File(filePath);
    if (file.exists()) {
        response.setContentType("application/octet-stream");
        response.setContentLength((int) file.length());
        response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());
        BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(file));
        BufferedOutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
        byte[] buffer = new byte[1024];
        int len;
        while ((len = inputStream.read(buffer)) > 0) {
            outputStream.write(buffer, 0, len);
        }
        inputStream.close();
        outputStream.flush();
        outputStream.close();
    }
}

以上是完整的SpringMVC实现文件上传下载的全过程。具体实现方式可以根据项目的具体情况进行修改和优化。

本文标题为:SpringMVC实现文件上传下载的全过程

基础教程推荐