学习内容:学习JavaWeb(Day41)
1、文件的上传
2、文件的查看
3、文件的下载
4、使用工具类上传文件
5、基于servlet3.0以上的文件上传
1、文件的上传
(1)实现文件的上传需要的依赖包
commons-fileupload.jar
commons-io.jar
(2)在jsp文件创建上传文件表单
<!--创建可以上传文件的表单需要声明enctype="multipart/form-data-->
<form class="form-horizontal" action="/fileUpload" method = "post" enctype="multipart/form-data">
<div class="form-group">
<label class="col-sm-2 control-label">文件描述:</label>
<div class="col-sm-10">
<input type="text" name="desc" />
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">点击上传文件:</label>
<div class="col-sm-10">
<input type="file" name="myFile" />
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" value="提交">
</div>
</div>
</form>
(3)创建FileUploadServlet.java
@WebServlet("/fileUpload")
public class FileUploadServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.getRequestDispatcher("WEB-INF/views/file.jsp").forward(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
//判定当前提交表单是不是一个文件表单 是true 否false
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart) {
try {
//构建factory对象用于ServletFileUpload构造方法中
DiskFileItemFactory factory = new DiskFileItemFactory();
//设置上传文件时用的临时空间
ServletContext servletContext = this.getServletConfig().getServletContext();
File repository = (File) servletContext.getAttribute("javax.servlet.context.tempdir");//文件的临时目录
factory.setSizeThreshold(1024); //设置临时空间大小
factory.setRepository(repository);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(1024*1024*20);//设置表单提交所有内容总长度
upload.setHeaderEncoding(