Servlet 与 Spring MVC上传文件

本文介绍了在web开发中,如何使用Servlet和Spring MVC进行文件上传。在Servlet中,详细解析了form表单的enctype属性以及multipart/form-data的含义,强调了Content-Type和boundary在请求头中的作用。而在Spring MVC中,展示了配置步骤和Controller中处理文件上传的方法,通过@RequestParam注解接收MultipartFile对象,便于进一步操作。
摘要由CSDN通过智能技术生成

Servlet 与 Spring MVC上传文件

在写web项目的时候,难免会有前端向后台发送文件数据的情况,我们知道:通常我们用form表单向后端发送请求数据并得到响应(比如上传头像)。form表单中input标签有一个参数type,里面有个值是file,是不是我们只需要修改这里,就可以直接向后端发送文件数据了呢?答案是不对,我们先来看我们应该怎样写这个form表单

<form method="post" action="action.do" enctype="multipart/form-data">
    <input type="file" name="upload_file">
    <input type="submit" value="上传">
</form>

我们可以注意到,在form标签中,有一个:enctype=“multipart/form-data” ,这句话的作用是什么呢?
我们先来看一下enctype中的三个选项分别代表什么

描述
application/x-www-form-urlencoded 在发送前编码所有字符(默认)
multipart/form-data 不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
text/plain 空格转换为 “+” 加号,但不对特殊字符编码。

其中表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码,是类上传二进制数据方式, 所以form里面的input的值以二进制的方式传过去的。

而 multipart/form-data 是组合post请求方式发送的,但其与普通的post请求有两处区别

  • 1 . 请求头:multipart/form-data的请求头必须包含一个特殊的头信息:Content-Type,其值也必须为multipart/form-data&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值