JSP操作之使用Commons-FileUpload组件实现文件上传

本文介绍了Apache Commons-FileUpload组件,它简化了JSP中的文件上传操作。通过设置表单的enctype属性为multipart/form-data,配合File控件选择文件,然后利用ServletFileUpload类、FileItem接口和DiskFileItemFactory实现文件上传。文章详细讲解了组件的API,包括ServletFileUpload、FileItem接口和FileItemFactory,最后提供了一个示例来演示文件上传流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


目前有很多的非常实用的文件上传工具,可以帮我们实现文件上传的功能,其中应用比较多的是Commons-FileUpload组件,使用该组件可以极大的简化开发人员的编码工作量。

Commons-FileUpload 简介

Commons 是Apache 开放源文件代码组织的一个java子项目,该项目涉及一些开发中常用的模块,如文件上传,命令行处理,数据库池连接等。FileUpload就是其中的一个用于处理HTTP文件上传的子项目。Commons-FileUpload组件具有以下几个特点。
1.使用简单:Commons-FileUpload 组件可以方便的嵌入JSP文件中,在JSP文件中仅编写少量代码即可完成文件的上传功能,十分方便。
2.能够全程控制上传内容:使用Commons-FileUpload 组件提供的对象及操作方法,可以获得全部上传文件的信息,包括文件名称,类型,大小等,方便操作。
3.能够对上传文件的大小,类型进行控制:为了避免在上传过程中出现异常数据,在Commons-FileUpload 组件中,专门提供了相应的方法用于对上传文件进行控制。
提示: 获取Commons-FileUpload组件的步骤:
(1)登录网站 http://commons.apache.org/fileupload 下载 Commons-FileUpload 组件,即commons-fileupload-1.2.2-bin-zip,将下载的文件解压,得到commons-fileupload-1.2.2 文件夹。其中,commons-fileupload-1.2.2/lib/commons-fileupload-1.2.2.jar 即为Commons-FileUpload组件类库。commons-fileupload-1.2.2\site\apidocs 为Commons-FileUpload组件的API文档,可以访问index.html 查阅相关的类和接口。
(2) 登录网站 http://commons.apache.org/io 下载Commons-IO 组件,即commons-io-2.4-bin.zip。该组件用于处理文件上传所依赖的I/O操作。 将下载得到的 commons-io-2.4-bin.zip文件解压,得到commons-io-2.4文件夹。其中,commons-io-2.4.jar文件即为Commons-IO组件类库。commons-io-2.4\docs 为Commons-IO组件的API文档,可以访问index.html查阅相关的类和接口。

表单的属性设置

文件上传时,需要在表单属性中添加enctype属性,该属性用于设置表单提交数据的编码方式。由于文件传至服务器时与一般文本类型的编码方式不同,需要使用multipart/form-data的编码方式。该属性的设置如下。

<form enctype="multipart/form-data" method="post">

注意: 上传文件时form标签的method属性值必须为 “post”,不能为“get ”。

知识扩展:表单的enctype属性有以下三个值:

1.application/x-www-form-urlencoded: 是其默认值。该属性主要用于处理少量文本数据的传递。在向服务器发送大量的文件包含非ASCII字符的文本或二进制数据时效率很低。

2.multipart/form-data:上传二进制数据,只有使用了multipart/form-data 才能完整地传递文件数据,进行上传操作。

3.text/plain:主要用于向服务器传递大量文本数据,比较适用于电子邮件的应用。

使用File 控件选择文件

我们知道通过设置input标签的type属性实现在页面中添加不同类型的控件,如文本输入框,按钮等。如果实现文件上传,就需要在页面中使用File控件。在表单中添加File控件的代码如下。

 	<form action=".." enctype="multipart/form-data" method="post">
		<p>姓名:<input type="text" name="user"></p>
		<p>选择图片:<input type="file" name="nfile"></p>
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值