📄 uploadservlet2.java
字号:
package test;
import java.io.File;
import java.io.IOException;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.util.Streams;
import org.apache.commons.fileupload.FileItemIterator;
import org.apache.commons.fileupload.FileItemStream;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class uploadServlet2 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html;charset=gb2312");
//设置上传文件后的保存目录
String path=this.getServletContext().getRealPath("/upload");
File saveDir = new File(path);
try{
if(ServletFileUpload.isMultipartContent(req)){ //判断请求消息是否为multipart/form-data 类型
DiskFileItemFactory dff = new DiskFileItemFactory(); //创建该对象
dff.setSizeThreshold(1024*1024); //指定在内存中缓存数据大小,单位为byte,超过就存到临时目录
ServletFileUpload sfu = new ServletFileUpload(dff); //创建该对象
sfu.setFileSizeMax(1024*1024*5); //指定单个上传文件的最大尺寸
sfu.setSizeMax(1024*1024*10); //指定一次上传多个文件的总尺寸
sfu.setHeaderEncoding("utf-8");
FileItemIterator fii = sfu.getItemIterator(req); //解析request 请求,并返回FileItemIterator集合
while(fii.hasNext()){
FileItemStream fis = fii.next(); //从集合中获得一个文件流
InputStream stream=fis.openStream();
if(!fis.isFormField() && fis.getName().length()>0){ //过滤掉表单中非文件域
String fileName = fis.getName().substring(fis.getName().lastIndexOf("\\")+1); //获得上传文件的文件名
BufferedInputStream in = new BufferedInputStream(stream); //获得文件输入流
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(saveDir,fileName))); //获得文件输出流
Streams.copy(in, out, true); //开始把文件写到你指定的上传文件夹
}
}}}catch(Exception e){
e.printStackTrace();
}
}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -