一、概述
文件上传:将本地的文件通过流写入到服务器的过程
二、应用
- 实际开发中有很多应用:
- QQ空间上传图片
- 招聘网站上传简历
三、文件上传的技术
- JSPSmartUpload :应用在JSP上的文件上传和下载的组件。
- FileUpload :应用在Java环境上的文件上传的功能。
- Servlet3.0 :提供文件上传的功能
- Struts2 :提供文件上传的功能
四、文件上传的要素
- 文件上传的三个要素
- 表单的提交的方式需要是POST(get方式有大小限制)
- 表单中需要有<input type=”file”>元素,需要有name属性和值。
- 表单enctype=”multipart/form-data”
五、文件上传的原理分析
5.1 加enctype与不加的区别
新建jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
文件描述:<input type="text" name="miaoshu"><br>
文件上传:<input type="file" name="upload"><br>
<input type="submit" value="提交"><br>
</form>
</body>
</html>
没设置enctype时候的请求部分:只有描述和上传的文件名 ,没有文件上传中的文件的具体的内容
设置enctype后:可看到文件内容
5.2 文件上传原理分析
六、文件上传的入门
第一步:引入文件上传的相关的jar包
第二步:编写文件上传的页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="${pagecontext.request.contextPath}/uploadServlet" method="post" enctype="multipart/form-data">
文件描述:<input type="text" name="miaoshu"><br>
文件上传:<input type="file" name="upload"><br>
<input type="submit" value="提交"><br>
</form>
</body>
</html>