使用Spring-MVC框架实现文件上传

1. 使用Spring-MVC框架实现文件上传

相信在学习过javaweb阶段的小伙伴都知道 , 当我们需要使用javaweb原生代码实现文件上传及下载都非常的麻烦。需要大量的的代码来对他进行实现 , 而spring-Mvc框架帮助我们实现了这个功能 , 只需要简单的几步即可实现对文件的上传 , 接下来就给大家介绍一下 。

使用Spring-MVC 框架实现文件的上传 , 只需要一下三步即可

  1. 导入fileupload和io坐标
  2. 配置文件上传解析器
  3. 编写文件上传代码

接下来对 以上三个步骤进行依次实现

  1. 首先第一步导入fileupload和io坐标(这里我使用的是maven项目结构所以在pom.xml中导入)
<dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.3.1</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.4</version>
    </dependency>
  </dependencies>
  1. 配合文件上传解析器 (在Spring-MVC.xml)中进行配置
<bean  id="multipartResolver"   class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!--指定字符集编码 -->
        <property name="defaultEncoding" value="UTF-8"></property>
        <!--设置最大上传文件的大小 -->
        <property name="maxUploadSize" value="1024000"></property>
    </bean>

  • 在这里要特别注意的是这个bean标签的id 必须是为固定的multipartResolver , 否则在后期的
    实现中后端代码就无法接受到前端上传的文件
  1. 编写文件上传代码
@RequestMapping(value="/quick21")
@ResponseBody       //接受的前端的值 (username)   //以及前端上传的文件为uploadFile  
public void save19(String username , MultipartFile uploadFile) throws IOException {
    //将获取到的前端上传的字符串及文件地址打印出来
    System.out.println(username);    
    System.out.println(uploadFile);
}
在后端代码编写完毕后 , 就可以进行对前台代码的编写
<html>
<head>
    <title>上传文件</title>
</head>
<body>
<form action="user/quick21" method="post" enctype="multipart/form-data">
     名称<input  type="text" name="username" > <br />
     文件 <input  type="file" name="uploadFile" > <br />
       <input  type="submit" value="提交">
</form>
</body>
</html>

有小伙伴可能会发现,在这里我使用使用了一个from表单中不常出现的属性 enctype ,enctype就是encodetype就是编码类型的意思。multipart/form-data是指表单数据有多部分构成,既有文本数据,又有文件等二进制数据的意思。

需要注意的是:默认情况下,enctype的值是application/x-www-form-urlencoded,不能用于文件上传,只有使用了multipart/form-data,才能完整的传递文件数据。

application/x-www-form-urlencoded不是不能上传文件,是只能上传文本格式的文件,multipart/form-data是将文件以二进制的形式上传,这样可以实现多种类型的文件上传。

原文链接:https://blog.csdn.net/lingxiyizhi_ljx/article/details/102514560

代码编写完成后 , 打开前端页面 , 会看到我们定义的表单项里面的内容 , 当我们点击了选择文件的按钮 , 他就会自动弹出对话框 , 只要选择你需要上传的文件即可 , 然后在点击提交按钮 , 即可将我们所需要上传的文件 提交到后台

在后端控制台我们就可以看到 打印出相应的从前端传过来的用户名及上传文件的地址,说明文件上传成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yj_xqj

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

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

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

打赏作者

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

抵扣说明:

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

余额充值