JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Spring boot文件上传下载的三种方式

wys521 2024-10-05 05:10:30 精选教程 21 ℃ 0 评论

以前写SSM项目的时候,部署如果是用Tomact的话,上传文件存放会变得非常简单,文件上传可以传到webapp下。是当你使用SpringBoot的jar包发布项目的时候,你会发现,你不能像以前一样操作文件了。解决SpringBoot项目的文件上传和下载至少有三种方式:

一、将文件存放在硬盘的某个目录,用Java去读取下载:

适用场景:这种方式适用于小项目,单个服务器部署。

上传文件:

/**
 * 上传文件
 */
 @RequestMapping(method = RequestMethod.POST, path = "/upload")
 @ResponseBody
 public String upload(@RequestPart("file") MultipartFile file) {
 try {
 // 得到上传时的文件名
 String originalFilename = file.getOriginalFilename();
 String fileSavePath = "/myproject/upload/";
 file.transferTo(new File(fileSavePath + originalFilename));
 } catch (Exception e) {
 e.printStackTrace();
 return "上传失败";
 }
 return "上传成功";
 }

下载文件:

/**
 * 下载文件
 *
 */
 @RequestMapping("/{fileName}")
 public void renderPicture(@PathVariable("fileName") String fileName, HttpServletResponse response) {
 try {
 byte[] bytes = FileUtil.toByteArray("/myproject/files/" + fileName);
 response.getOutputStream().write(bytes);
 } catch (Exception e) {
 //如果找不到文件就返回一个默认图片
 try {
 response.sendRedirect("/static/img/default.gif");
 } catch (IOException e1) {
 e1.printStackTrace();
 }
 }
 }

二、将文件存放在硬盘的某个目录,配置Nginx去下载;

适用场景:这种方式适用于不考虑分布式部署的项目。

上传方式跟上面的一样。下载文件则需要配置Nginx去访问文件。

三、使用云存储上传下载。

适用场景:大型项目建议使用,尤其是分布式部署的项目。

阿里云、七牛云、腾讯云等等,有好多家,都可以实现。有的可以通过Javascript前端上传,有的则需要上传到服务器然后再往云存储上传。云存储提供商会提供免费子域名来访问,有的也可以绑定自己的域名,还可以提供图片防盗链等等功能。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表