Java中实现文件上传

目录

1、文件上传本地

1.1 原理

1.2 如何使用文件上传

1.2.1 引入文件上传的依赖

 1.2.2 配置文件上传拦截器

 1.2.3 完成文件上传的代码

2、文件上传oss服务器 

2.1 为什么需要上传到oss服务器

2.2 如何使用oss 

2.2.1 开启oss服务

 2.2.2 在Java中引入依赖

2.2.3 查看自己ID和密钥

2.2.4 代码

3、案例

3.1 引入相关依赖 

3.2  创建实体类

3.3 创建controller层

3.3.1 创建StudentController

3.3.2 创建UploadController

3.4 创建dao层

3.4.1 BaseDao

3.4.2 StudentDao

3.5 配置SpringMvc配置文件

3.6 编写upload.jsp文件


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服务器

  1. 如果项目搭建了集群。那么导致文件数据无法共享。

  2. 如果项目的target删除了。导致文件数据丢失。

2.2 如何使用oss 

2.2.1 开启oss服务

oss服务器网址

点击上面链接,跳转到阿里云的oss服务器页面,完成登录后,会进入oss管理控制台,如图所示

 然后点击创建Bucket,操作如下图

 2.2.2 在Java中引入依赖

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hanshy123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值