文件上传和下载
1.1
文件的上传:
1.1.1
文件上传的概述
:
什么是文件上传
:
文件上传:
QQ
上传头像.
将文件存入到网盘中...
将本地文件写到服务器上.
文件上传的三要素
:
文件上传的三要素:
表单的提交的方式必须是POST
方式:
GET
方式有大小的限制的.POST
方式没有大小的限制.
表单中需要有文件上传项:
在表单中需要有<input type=
”file
”>.
而且文件上传项必须有name
的属性.
表单的enctype
属性:
必须设置为multipart/form-data
文件上传的原理分析
:
没有设置enctype属性的情况:
Httpwatch抓包
=========================enctype属性为默认值的情况:没有文件中的内容.
设置了enctype属性为multipart/form-data
文件上传的技术
:
JSPSmartUpload:jspSmartUpload组件是应用JSP进行
B/S
程序开发过程中经常使用的上传下载组件,它使用简单,方便。现在我又为其加上了下载中文名字的文件的支持,真个是如虎添翼,必将赢得更多开发者的青睐。
Servlet3.0 :提供了文件上传的功能.
Struts2 :提供了文件上传和下载的功能.
1.1.2
文件上传的入门案例
:
步骤一
:
创建一个
web
项目
,
引入相应
jar
包
:
引入jar包:
commons-fileupload-1.2.1.jar
commons-io-1.4.jar
步骤二
:
创建一个页面
:
满足文件上传的条件:
<h1>文件上传的页面</h1>
<!--
文件上传的三要素
表单的提交的方式必须是POST方式:
GET方式有大小的限制的.POST方式没有大小的限制.
表单中需要有文件上传项:
在表单中需要有<input type=”file”>.而且文件上传项必须有name的属性.
表单的enctype属性:必须设置为multipart/form-data
-->
<form action="${ pageContext.request.contextPath }/uploadServlet" method="post" enctype="multipart/form-data">
文件描述:<input type="text" name="desc"/><br/>
文件上传:<input type="file" name="upload"/><br/>
<input type="submit" value="文件上传">
</form>
步骤三
:
编写
Servlet:
public class UploadServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*InputStream is = request.getInputStream();
String info = IOUtils.toString(is);
System.out.println(info);*/
/**
* 使用FileUpload组件完成文件上传:
* * 创建一个磁盘文件项工厂:
* * 创建一个核心解析类:
* * 使用核心解析类解析request请求.返回一个List集合.封装的一个FileItem的对象.