【发布时间】:2020-08-03 22:39:54
【问题描述】:
我正在学习 Servlet 中的文件上传教程
我的系统配置是
- 日食
- Apache Tomcat 8.5
- JDK:1.8
我的 index.html(表单代码):
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="UploadFileServlet" method="post">
Select a file to upload
<input type="file" value="file" name="source"/>
<input type="submit" value="Upload"/>
</form>
</body>
</html>
上传文件Servlet.java:
package com.upload;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Paths;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
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.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* Servlet implementation class UploadFileServlet
*/
@WebServlet("/UploadFileServlet")
public class UploadFileServlet extends HttpServlet
{
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try
{
ServletFileUpload sf=new ServletFileUpload(new DiskFileItemFactory());
List<FileItem> multFileItems=sf.parseRequest(request);
System.out.println(multFileItems.isEmpty());
for(FileItem item:multFileItems)
{
item.write(new File("E:\\aman\\"+item.getName()));
}
}
catch(Exception e)
{
System.out.println(e);
}
}//End of doPost method
}
我不明白为什么它不起作用。它不会产生任何异常。
预期输出:
我希望这段代码能上传我在e:\aman\文件夹中的表单中选择的文件,但它没有上传任何文件
您可以通过
重现此错误https://drive.google.com/open?id=1oHnkV5Tmrp2jX8SU6Ilw_EYPWXQbsvv9
【问题讨论】:
-
您在
doPost中盲目地捕获所有异常。对异常做一些事情可能会有所帮助,例如将其打印到日志中。这样你至少会知道是否发生了异常。 -
我已经编辑了我的问题。没有发生异常。@DanielBarbarian
-
那么请在问题中包括发生了什么以及为什么它与您的预期结果不同。
-
我希望这段代码能在我的 e:\aman\ 文件夹中上传一个文件。但事实并非如此。我已经编辑了我的帖子。 @DanielBarbarian
-
看这里BallusC。它涵盖了很多你应该研究的东西。
标签: java jsp servlets jakarta-ee file-upload