1. 创建文件上传表单页面(upload.jsp):
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
<head>
<title>File Upload</title>
</head>
<body>
<h2>File Upload</h2>
<form action="uploadServlet" method="post" enctype="multipart/form-data">
<label for="file">Select File:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" value="Upload">
</form>
</body>
</html>
2. 创建处理文件上传的Servlet(UploadServlet.java):
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
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;
@WebServlet("/uploadServlet")
@MultipartConfig(fileSizeThreshold = 1024 * 1024 * 2, // 2MB
maxFileSize = 1024 * 1024 * 10, // 10MB
maxRequestSize = 1024 * 1024 * 50) // 50MB
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
// 获取文件上传的部分
Part filePart = request.getPart("file");
// 获取上传文件的名称
String fileName = extractFileName(filePart);
// 保存文件到服务器
String savePath = "C:\\uploads\\"; // 保存路径,可以根据需要修改
File fileSaveDir = new File(savePath);
if (!fileSaveDir.exists()) {
fileSaveDir.mkdir();
}
// 构建完整的文件保存路径
String filePath = savePath + File.separator + fileName;
// 将文件写入磁盘
filePart.write(filePath);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<h2>File " + fileName + " has been uploaded successfully!</h2>");
out.println("</body>");
out.println("</html>");
}
// 从Part的Header中提取文件名
private String extractFileName(Part part) {
String contentDisp = part.getHeader("content-disposition");
String[] items = contentDisp.split(";");
for (String s : items) {
if (s.trim().startsWith("filename")) {
return s.substring(s.indexOf("=") + 2, s.length()-1);
}
}
return "";
}
}
3. 配置文件上传的一些参数:
在Servlet中,通过 @MultipartConfig 注解配置文件上传的一些参数,如文件大小限制等。
4. 运行应用:
访问 upload.jsp 页面,选择文件并上传。上传的文件将保存在指定的目录中,并显示上传成功的消息。
上述示例展示了一个简单的文件上传过程,实际应用中可能需要更多的处理逻辑和安全性措施。请确保在实际开发中进行适当的异常处理、文件类型验证和安全性检查。
转载请注明出处:http://www.pingtaimeng.com/article/detail/6913/JSP