一、前端jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/upload " enctype="multipart/form-data" method="post">
<input type="file" name="file" />
<input type="submit" value="submit"/>
</form>
</body>
</html>
二、后端servlet
package com.dq;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
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;
import org.apache.commons.io.FileUtils;
public class Upload extends HttpServlet{
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
try
{
// 获取核心处理器handler
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload handler = new ServletFileUpload(factory);
handler.setHeaderEncoding("utf-8");
List<FileItem> parseRequest = handler.parseRequest(request);
InputStream inputStream = parseRequest.get(0).getInputStream();
File targetFile = new File(request.getRealPath(request.getContextPath()) + "\\upfile" + parseRequest.get(0).getName());
// 输入流转化为服务端的文件
FileUtils.copyInputStreamToFile(inputStream, targetFile);
}
catch (FileUploadException e)
{
e.printStackTrace();
}
}
}
三、参考api
http://commons.apache.org/proper/commons-io/javadocs/api-release/index.html
这里基本有想要的一切,希望有时间可以研究一下源码,将来做个轮子哥