文件上传成功了,可以在文件夹里找到文件,但是不显示上传成功信息,反而弹出下载fileUpload.do文件,这是什么原因啊?
package com.example.ServletDemo.part;
import javax.servlet.ServletContext;
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 java.io.IOException;
import java.io.PrintWriter;
import java.util.UUID;
@WebServlet(name = "FileUploadServlet", value = "/fileUpload.do") @MultipartConfig public class FileUploadServlet
extends HttpServlet {
@Override protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("describe/html;charset=utf-8");
String describe = request.getParameter("describe");
Part uploadFile = request.getPart("uploadFile");// 要与<input>中的name一致
// 获取文件上传的字节流
// InputStream inputStream = uploadFile.getInputStream();
// 给文件改名
String fileName = UUID.randomUUID().toString() + uploadFile.getSubmittedFileName()
.substring(uploadFile.getSubmittedFileName().lastIndexOf("."));
// 路径转换
ServletContext servletContext = this.getServletContext();
String realPath = servletContext.getRealPath("image/" + fileName);
// 直接调用Part对象的write方法,不用手动创建字节流
uploadFile.write(realPath);
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("上传成功!" + describe);
out.println("</body></html>");
out.flush();
out.close();
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="fileUpload.do" method="post" enctype="multipart/form-data">
文件描述:<input type="text" name="describe"/>
上传文件:<input type="file" name="uploadFile"/><br/>
<input type="submit" value="submit"/>
</form>
</body>
</html>
