JavaWeb实现文件的上传和下载

JavaWeb实现文件的上传和下载

在JavaWeb中想要实现文件上传,通常需要完成两步操作:一是在web页面上添加上传输入项;二是在Servlet中读取上传文件的数据。

一:在web页面上添加输入项

大多数的文件上传都是通过表单形式提交给服务器,故若想实现文件上传,先创建一个用于上传文件的表单:

  • 表单设置
    1. 将method设置为POST
    2. 将enctype设置为“multipart/form-data”类型(用于提交包含文件,非ASCII数据和二进制数据的表单)
    3. action设置为"UploadServlet"(响应表单的那个Servlet)
  • input输入组件设置
    1. 必须设置input输入项的name属性,否则浏览器将不会发送上传的文件数据(下面详解)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="UploadServlet" method="post" enctype="multipart/form-data">
	<table width="300px">
		<tr>
			<td>上传者</td>
			<td><input name="name" type="text" /></td>
		</tr>
		<tr>
			<td>上传文件</td>
			<td><input name="file" type="myfile" /></td>
		</tr>
		<tr>
			<td colspan="2"><input type="submit" value="上传"></td>
		</tr>
	</table>
</form>
</body>
</html>

在这里插入图片描述

二: 在Servlet中读取上传文件的数据

实现文件上传目前使用较多的为开源组件Commons-FileUpload。

Commons-FileUpload组件实现文件上传流程

在这里插入图片描述
在servlet响应处理过程中有三个至关重要的类/接口:

FileItem接口:用于封装单个表单字段元素的数据,一个表单字段元素对应一个FileItem对象

如下图就是两个表单字段元素,对应可以生成两个FileItem对象
在这里插入图片描述
在FileItem接口里定义了许多获取表单字段元素的方法,这些方法在实现文件上传时起了至关重要的作用
FIleItem的方法我写在了另外一篇博客,需要的可以查看
戳这看FileItem的具体方法


DiskFileItemFactory类
DiskFileItemFactory类用于将请求消息实体中的每一个文件封装陈单独的FileItem对象。在实际应用中我们更显而易见的是它设置上传文件缓存目录的功能
DiskFileItemFactory类的使用,戳它~


ServletFileUpload类
ServletFileUpload类,处理文件上传的核心高级类,通过使用parseRequest(HttpServletRequest)方法将HTML中的每个表单提交的数据封装成一个FileItem对象,然后一List列表形式返回。

ServletFileUpload类的使用方法,戳它~

代码示例今晚上传嘿嘿~

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值