57 lines
2.0 KiB
Java
57 lines
2.0 KiB
Java
package com.demo;
|
|
|
|
import java.io.*;
|
|
import javax.servlet.*;
|
|
import javax.servlet.http.*;
|
|
import javax.servlet.annotation.*;
|
|
|
|
@WebServlet(name = "FileUploadServlet", urlPatterns = {"/fileUpload.do"})
|
|
@MultipartConfig(location = "D:\\", fileSizeThreshold = 1024)
|
|
public class FileUploadServlet extends HttpServlet {
|
|
public void doPost(HttpServletRequest request, HttpServletResponse response)
|
|
throws ServletException, IOException {
|
|
|
|
// 设置请求和响应的字符编码为UTF-8
|
|
request.setCharacterEncoding("UTF-8");
|
|
response.setCharacterEncoding("UTF-8");
|
|
response.setContentType("text/html;charset=UTF-8");
|
|
|
|
// 返回Web应用程序文档根目录
|
|
String path = this.getServletContext().getRealPath("/");
|
|
String mnumber = request.getParameter("mnumber");
|
|
Part p = request.getPart("fileName");
|
|
|
|
PrintWriter out = response.getWriter();
|
|
out.println("<html><body>");
|
|
out.println("<font color = '#0000ff'>");
|
|
|
|
if (p.getSize() > 1024 * 1024) { // 上传的文件不能超过1MB大小
|
|
p.delete();
|
|
out.println("文件太大,不能上传!");
|
|
} else {
|
|
path = path + "\\student\\" + mnumber;
|
|
File f = new File(path);
|
|
if (!f.exists()) { // 若目录不存在,则创建目录
|
|
f.mkdirs();
|
|
}
|
|
|
|
// 得到文件名
|
|
String h = p.getHeader("content-disposition");
|
|
String fname = getFileName(h);
|
|
|
|
p.write(path + "\\" + fname);
|
|
out.println("文件上传成功!");
|
|
}
|
|
out.println("</body></html>");
|
|
}
|
|
|
|
private String getFileName(String contentDisposition) {
|
|
String[] parts = contentDisposition.split(";");
|
|
for (String part : parts) {
|
|
if (part.trim().startsWith("filename")) {
|
|
return part.substring(part.indexOf('=') + 1).trim().replace("\"", "");
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
} |