目录
1、文件上传本地
1.1 原理
1.2 如何使用文件上传
1.2.1 引入文件上传的依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
</dependency>
<!--servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!--jackson依赖:把controller层方法返回的java对象转化为json字符串-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.3</version>
</dependency>
<!--文件上传依赖-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
1.2.2 配置文件上传拦截器
<!--文件上传解析器 id:必须为multipartResolver-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--设置文件上传的大小 单位为byte字节 1M=1024kb=1024b 10*1024*1024-->
<property name="maxUploadSize" value="10485760"/>
<!--设置编码-->
<property name="defaultEncoding" value="utf-8"/>
</bean>
1.2.3 完成文件上传的代码
<%--表单: 提交方式必须为post enctype编码:multipart/form-data文件编码--%>
<form method="post" action="/upload" enctype="multipart/form-data">
<%--input必须设置文件文件框 而且必须起名称--%>
选择上传的文件:<input type="file" name="myfile"/><br>
<input type="submit" value="上传"/>
</form>
@Controller
public class UploadController {
/**
*
* @param myfile 接受你上传的文件对象信息封装到该类。该类中可以获取上传文件的信息。比如:文件名 文件大小 文件后缀等
* 这个名称必须为文件上传表单的文件框的名称一致
* @return
*/
@PostMapping("/upload")
public String upload(MultipartFile myfile, HttpServletRequest request) throws IOException {
//获取tomcat上下文中的指定目录的路径
String realPath = request.getSession().getServletContext().getRealPath("/upload");
//根据上面的路径创建一个文件对象
File file=new File(realPath);
//如果没有该目录则创建
if (!file.exists()) {
file.mkdirs();
}
//把上传的文件转移到upload目录下--重名覆盖了
String uuid = UUID.randomUUID().toString().replace("-", "");
File target=new File(realPath+"/"+(uuid+myfile.getOriginalFilename()));
myfile.transferTo(target);
return "success";
}
}
2、文件上传oss服务器
2.1 为什么需要上传到oss服务器
如果项目搭建了集群。那么导致文件数据无法共享。
如果项目的target删除了。导致文件数据丢失。
2.2 如何使用oss
2.2.1 开启oss服务
点击上面链接,跳转到阿里云的oss服务器页面,完成登录后,会进入oss管理控制台,如图所示
然后点击创建Bucket,操作如下图
2.2.2 在Java中引入依赖
<