Servlet实现文件上传详解与实战

本文详细介绍了如何使用Servlet实现文件上传。客户端通过设置HTML表单的enctype为"mutipart/form-data"来上传文件,服务器端利用@MutipartConfig注解的Servlet处理上传请求。Servlet提供了Part接口来处理多部分请求,包括获取Part的名称、内容类型、文件名等,并提供write方法将文件写入磁盘。此外,还提供了一个单文件上传Servlet的范例。
摘要由CSDN通过智能技术生成

    文件上传


1.客户端编程


要上传文件,必须利用mutipart/form-data 设置HTML表单的enctype 属性值

<form action="action"  enctype="mutipart/form-data"  method="post">

Select a file <input type="file" name="fileName"/>

<input type="submit" value="Upload">

</form>


如果想上传多个文件,则不得不使用文件input元素,在input元素加入multipel属性 ,以便生成一个按钮供选择多个文件

<input type="file" name="fileName" mutipel/> 

<input type="file" name="fileName" mutipel="multipel"/> 

<input type="file" name="fileName" mutipel=""/>    同样效果




2. 服务器端编程

 

Sevlet中的服务器处理上传文件的Servlet必须用 @MutipartConfig 进行标注。 

MutipartConfig带有下面几个属性:

maxFileSize: 表示可上传文件的容量。默认为-1,表示不受限制

maxRequestSize:表示允许多部分HTTP请求的最大容量。默认为-1,表示不受限制

location:将上传的文件保存到磁盘中的指点位置,调用Part的write方法将用到它

fileSizeThreshold:设定一个溢出尺寸,超过这个值之后,上传的文件将被写入磁盘


在一个有多部分组成的请求中,标一个表单域,包括非文件域,都会被转换成一个Part


HttpServletRequest 接口定义了以下方法来处理多部分的请求:

Part getPart (String name)  :返回指点名称的Part   

Collection getParts()  :返回这个请求的所有PART


Part接口还有以下的方法

String getName()    返回与指定部分有关的域名称,非文件名称(要想获取文件名称,需要解析content-disposi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值