文件上传
1.同步文件上传
1.1首先导入
fileUpload是apache的commons组件提供的上传组件,它最主要的工作就是帮我们解析request.getInpustream()。
1.2前台
- 在前台创建一个form表单
- method必须是post请求
- 必须有属性enctype=“multipart/form-data”;它不对字符进行编码,用于发送二进制的文件(即所有文件类型,如视频、图片、音乐、文档都可以用此类型entype);还有一种enctype="text/plain"用于发送纯文本内容。(普通表单提交默认enctype=“application/x-www-form-urlencoded”)
- 文件域 type=“file”
- 接收时不能再用request.getParameter(),而是request.getInputStream()解析二进制流,得到ServletInputStream对象。
在前台创建一个html或者jsp文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<form action="/web11_fileupload/fileUploadServlet" method="post" enctype="multipart/form-data">
<input type="file" name="fileupload" multiple="multiple"><br>
<input type="submit" value="文件上传">
</form>
</body>
</html>
1.3FileUploadServlet.java
package com.fileupload;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
@WebServlet("/fileUploadServlet")
public class FileUploadServlet extends HttpServlet {
protected void doGet(HttpServletRequest request