java入门005~springboot实现单个文件上传(图片 文档 视频 音频都可以上传)
上一节教大家开发了一个简单的可供浏览器,微信小程序访问的java后台项目,这一节来给大家讲讲我的如何使用springboot实现文件上传的功能,可以上传图片,文档,视频,音频。
本节知识点
- 1,springboot项目的搭建
- 2,图片,文档,视频,音频的上传
- 3,通过网址可以访问到我们的上传文件
技术
- 1,jdk8
- 2,springboot2.1.5
- 3,开发工具IntelliJ IDEA2019 最新版
如果你还不知道如何创建一个springboot项目,请查看上一节内容。这里不再讲解项目的创建流程,而是直接讲我们的技能点了。
一,首先要在我们的pom.xml里引入web类库
web类库的引入,前面章节和视频里也有讲解。
二,创建upload.html,实现文件的选择与上传
如下图所示:在resources目录的static文件下创建upload.html文件。(如果static不存在,就自己创建一个static文件)
代码贴出来
[code]<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>上传文件到服务器</title> </head> <body> <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="uploadFile" value="请选择文件"> <input type="submit" value="上传"> </form> </body> </html>
三,创建UploadController类,用来接收上传的文件
这里简单给大家讲解下实现步骤
- 1,upload.html选择文件
- 2,upload.html上传文件
- 3,UploadController通过设置@RestController注解,来接收网页的请求
- 4,通过MultipartFile和HttpServletRequest拿到上传的文件和请求信息
- 5,创建存储文件的目录
- 6,通过uploadFile.transferTo(fileServer); 把上传的文件存储到服务器
- 7,返回一个可以访问文件的网址。
完整代码
[code]import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import javax.servlet.http.HttpServletRequest; /** * Created by qcl on 2019-06-11 * desc: 文件上传 */ @RestController public class UploadController { @PostMapping("/upload") public String upload(MultipartFile uploadFile, HttpServletRequest request) { /* 定义文件的存储路径,如下,是在linux和mac上定义的文件路径 /private/var/folders/8x/4zvnbqmj1w33cqmzrpygzbth0000gn/T/tomcat-docbase.5206733816001100271.8080/uploadFile */ String realPath = request.getSession().getServletContext().getRealPath("/uploadFile/"); File dir = new File(realPath); if (!dir.isDirectory()) {//文件目录不存在,就创建一个 dir.mkdirs(); } try { String filename = uploadFile.getOriginalFilename(); //服务端保存的文件对象 File fileServer = new File(dir, filename); System.out.println("file文件真实路径:" + fileServer.getAbsolutePath()); //2,实现上传 uploadFile.transferTo(fileServer); String filePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + "/uploadFile/" + filename; //3,返回可供访问的网络路径 return filePath; } catch (IOException e) { e.printStackTrace(); } return "上传失败"; } }
四,验证
1,启动项目,如何启动前面章节有讲,这里不再啰嗦。
2,访问upload.html,输入下图所示的网址,即可访问
3,选择文件
4,点击上传,然后就可以看到上传后的返回结果
5,我们可以直接访问第4步返回的链接,可以看到图片显示出来了
注意:
如果你上传的是一个zip压缩文件,访问的时候是直接下载文件
如果上传的是一个视频
大小不能超过1048576 bytes,也就是视频大小不能超过1.23M.否则会报如下错误,这错误的解决也很简单,我们后面章节会做讲解。
来看下一个mp4格式的视频上传成功后,访问视频资源的效果
可以看到,我们访问的时候,就可以直接在浏览器里播放这个mp4视频文件。
到这里我们就完整的实现了文件的上传。
源码已经传到网盘,如果想要源码,请先关注然后私信老师获取。
视频讲解地址:https://edu.csdn.net/course/detail/23443
源码地址:https://github.com/qiushi123/springboot-demos
往期回顾
java入门001--IntelliJ IDEA 配置阿里云Maven国内仓库(含idea下载及破解教程)
java入门002~jdk8 window版32位 64位 Mac版64位安装包
java入门003~手把手教你开发自己的第一个java项目(基于springboot2.1.5)
java入门004~五分钟教你用java开发一个小程序后台服务器~看完你也会
java入门005~springboot实现单个文件上传(图片 文档 视频 音频都可以上传)
- Java Springboot结合FastDFS实现文件上传以及根据图片url将图片上传至图片服务器
- java入门006~springboot实现多文件的上传(java多文件的上传)
- easyui+springboot+poi实现图片,音频,视频的上传(ftp)和回显(支持IE8)
- java Springboot实现多文件上传
- Spring Boot整合FTP实现上传图片或文件
- java ajax异步上传文件(文档、图片都可以)
- java Springboot实现多文件上传功能
- java操作ftp实现文件的上传下载(适用于图片文档服务器)
- javaSpringMVC上传文件(图片、文档、视频)及在线浏览
- Springboot+easyUI filebox实现单个文件上传
- 基于spring-boot的文件上传和下载(包括图片的压缩)--第一篇(Java代码)
- Spring boot 实现单个或批量文件上传功能
- jQuery上传文件到服务器,实现量上传及压缩包导入,支持Office文档、PDF、图像、音视频和图纸等各类型文件。上传完成后系统自动为图片、音、视频类文件增加摘要及缩略图
- springmvc + ajaxfileupload 实现异步上传文件(图片)
- 图片,音频,视频文件的上传 以及图片缩略图的制作,音频文件时长的获取以及 视频文件缩略图的获取
- Java实现视频网站的视频上传、视频转码、视频关键帧抽图, 及视频播放功能 视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播
- Ueditor结合七牛云及百度云存储(JAVA版,ueditor-1.4.3)实现图片文件上传
- Java学习日记8:文件上传工具类的实现和服务器给客户端发送图片
- SpringBoot下文件上传与下载的实现
- 【JAVA-OSS】如何在spring-boot项目中使用oss上传下载文件