在Servlet3.0中就無需配置XML的文件
代碼:
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import org.apache.catalina.core.ApplicationPart;
/**
* Servlet implementation class UploadServlet
*/
@WebServlet("/UploadServlet")
@MultipartConfig(location = "d:/temp")
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* 構造方法
*/
public UploadServlet() {
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
String path = this.getServletContext().getRealPath("/"); //獲取服務器地址
Part p = request.getPart("file1"); //獲取用戶選擇的上傳文件
if (p.getContentType().contains("image")) { // 僅處理上傳的圖像文件
ApplicationPart ap = (ApplicationPart) p;
String fname1 = ap.getSubmittedFileName(); //獲取上傳文件名
int path_idx = fname1.lastIndexOf("\\") + 1; //對上傳文件名進行截取
String fname2 = fname1.substring(path_idx, fname1.length());
p.write(path + "/upload/" + fname2); // 寫入 web 項目根路徑下的upload文件夾中
out.write("文件上傳成功");
}
else{
out.write("請選擇圖片文件!!!");
}
}
}
index.jsp
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="GBK" />
<title>應用Servlet實現文件上傳</title>
</head>
<body>
<form action="UploadServlet" enctype="multipart/form-data" method ="post" >
選擇文件<input type="file" name="file1" id= "file1"/>
<input type="submit" name="upload" value="上傳" />
</form>
</body>
</html>
最後說一下哦,D盤要新建一個temp的文件夾,要不然缺乏中間路勁會報錯哦