怎样使用javaweb实现上传视频和下载功能?
文件上传就是将客户端资源,通过网路传递到服务器端。
因为文件数据比较大,必须通过文件上传才可以完成将数据保存到数据库端的操作。
文件上传的本质就是IO流操作。
演示:文件上传应该如何操作?
浏览器端:
1.method=post 只有post才可以携带大数据
2.必须使用<input type='file' name='f'>要有name属性
3.encType="multipart/form-data"
服务器端:
request对象是用于获取请求信息。
它有一个方法 ?getInputStream(); 可以获取一个字节输入流,通过这个流,可以读取到
所有的请求正文信息.
文件上传原理:
浏览器端注意上述三件事,在服务器端通过流将数据读取到,在对数据进行解析.
将上传文件内容得到,保存在服务器端,就完成了文件上传。
注意:在实际开发中,不需要我们进行数据解析,完成文件上传。因为我们会使用文件上传的工具,它们已经封装好的,提供API,只要调用它们的API就可以完成文件上传操作.我们使用的commons-fileupload,它是apache提供的一套开源免费的文件上传工具。
代码演示文件上传的原理:
在WebRoot下新建upload1.jsp
[html]?view plain?copy
<%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%>?
<!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">?
<html>?
<head>?
<title>My?JSP?'index.jsp'?starting?page</title>?
</head>?
<body>?
<!--?encType?默认是application/x-www-form-urlencoded?-->?
<form?action="${pageContext.request.contextPath?}/upload1"?
method="POST"?enctype="multipart/form-data">?
<input?type="text"?name="content"><br>?
<input?type="file"?name="f"><br>?<input?type="submit"?
value="上传">?
</form>?
</body>?
</html>?
新建Upload1Servlet ?路径:/upload1
[java]?view plain?copy
package?cn.itcast.web.servlet;?
import?java.io.IOException;?
import?java.io.InputStream;?
import?javax.servlet.ServletException;?
import?javax.servlet.mons-io。commo-io不属于文件上传组件的开发jar文件,但Commons-fileupload组件从1.1版本开始,它工作时需要commons-io包的支持。