在系统中实现文件上传下载的方式挺多,比如通过IO流的方式,通过springmvc的方式等等。综合比较,后一种性能更高。今天我们就在springboot环境中来实现一下。
文件上传 |
第二步:新建FileController、SpringmvcfileApplication、upload.jsp文件,保证文件路径如下。
第三步:在pom文件中添加依赖。
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-web
javax.servlet
jstl
org.apache.tomcat.embed
tomcat-embed-jasper
第四步:编写Controller文件。其中“String filePath”处需要填写一个本机存在路径,否则会报路径错误。
package com.example.springmvcfile;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.List;
@Controller
public class FileController {
private static final Logger LOGGER = LoggerFactory.getLogger(FileController.class);
@GetMapping("/upload")
public String upload() {
return "upload";
}
@PostMapping("/upload")
@ResponseBody
public String upload(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return "上传失败,请选择文件";
}
String fileName = file.getOriginalFilename();
// 这需要填写一个本地路径
String filePath ="E://springmvcfile//";
File dest = new File(filePath + fileName);
try {
file.transferTo(dest);
LOGGER.info("上传成功");
return "上传成功";
} catch (IOException e) {
LOGGER.error(e.toString(), e);
}
return "上传失败!";
}
}
第五步:保证启动类文件SpringmvcfileApplication不变。
@SpringBootApplication
public class SpringmvcfileApplication {
public static void main(String[] args) {
SpringApplication.run(SpringmvcfileApplication.class, args);
}
}
第六步:在application.properties文件中添加如下属性。
# 上传文件总的最大值
spring.servlet.multipart.max-request-size=10MB
# 单个文件的最大值
spring.servlet.multipart.max-file-size=10MB
## jsp
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
第七步:编写upload.jsp文件。
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
单文件上传
第八步:运行main方法,在浏览器中访问对应路径,测试是否成功。
选择文件上传成功后,去对应本机路径中查看上传的文件。
文件下载 |
文件下载的实现和上传大同小异,只需在原来的文件中修改2处即可。
第一步:在Controller层添加如下代码。
@RequestMapping(value = "/download", method = RequestMethod.GET)
public ResponseEntity
第二步:在jsp文件中添加如下代码。
第三步:进行测试。
我们可以看到,在路径下有两张图片,现在我要把1.jpg下载下来。
小结 |
源码地址:
链接:https://pan.baidu.com/s/14tbBX6AmVAuMeKQX1FcvZg
提取码:e8wb