SpringMVC框架中文件的上传与下载

在SpringMVC中进行文件的上传与下载首先需要添加两个jar包,然后将这两个jar包拷贝到项目的lib目录中。
在这里插入图片描述

然后向SpringMVC配置文件spring-mvc.xml中添加文件上传相关配置
在这里插入图片描述

在Controller中编写文件上传
@Controller
@RequestMapping("/FileDemo")
public class FileDemoController {
@RequestMapping("/toUpload")
public String toUpload(){
return “/fileDemo/upload”;
}
@RequestMapping("/upload")
public ModelAndView upload(@RequestParam(value=“file”,required=true) MultipartFile myFile)
throws IOException{
String strFileName="";
//判断是否上传文件
if(myFile.isEmpty()){
System.out.println(“未上传文件”);
}else{
//获取上传文件的属性
System.out.println(“文件大小”+myFile.getSize());
System.out.println(“文件类型”+myFile.getContentType());
System.out.println(“文件名称”+myFile.getName());
System.out.println(“文件原名”+myFile.getOriginalFilename());
System.out.println("-------------------------------------");
//文件上传路径
String upDir=“F:/文件下载/”;
//获取文件原名
String fullName=myFile.getOriginalFilename();
//获取扩展名称
String ext=fullName.substring(fullName.lastIndexOf(’.’));
//拼接文件保存的名称
String FileName=System.nanoTime()+ext;
//保存文件
FileUtils.writeByteArrayToFile(new File(upDir,FileName),myFile.getBytes());
System.out.println(“保存的文件名称为:”+FileName);
strFileName=FileName;
}
ModelAndView mv=new ModelAndView("/fileDemo/uploadSuccess");
mv.addObject(“fileName”,strFileName);
return mv;
}
在Controller中编写文件下载
@RequestMapping("/download")
public ResponseEntity<byte[]> download(String fileName) throws IOException {
//文件上传路径
String upDir=“F:/文件下载/”;
//获取文件
File file = new File(upDir,fileName);
//设置header
HttpHeaders headers = new HttpHeaders();
//application/octet-stream二进制流数据(最常见的文件下载)
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
// //通知浏览器以attachment(下载方式) 下载文件,文件名称为指定名称
headers.setContentDispositionFormData(“attachment”, fileName);
//返回文件下载相关参数
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
}
一个简单的上传文件form表单

选择文件: 上传文件 选择上传的文件 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200917100750246.JPG#pic_center)

点击上传
在这里插入图片描述

点击上传的文件即可下载,同时将文件下载到指定的文件夹中。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值