无法在 Java Servlet 上上传文件

Unable to Upload Files On Java Servlet

我想在 Java Servlet 上上传文件,但是当我 运行 我的 upload.jsp 和 select 文件上传到被上传,当我点击 提交 它显示 HTTP 状态 404 – 未找到

upload.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
        <h2>HELLO WORLD</h2>
        <form action="upload" method="post" enctype="multipart/form-data">
                <input type="file" name="file" multiple/>
                <input type="submit">
        </form>
</body>
</html>

FileUpload.java

package com.servlet;
import java.io.*;
import java.util.List;
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 org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.*;

@WebServlet("/FileUpload")
public class FileUpload extends HttpServlet {
    private static final long serialVersionUID = 1L;
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try{
            ServletFileUpload sf = new ServletFileUpload(new DiskFileItemFactory());
            List<FileItem> multifiles = sf.parseRequest(request);
            for(FileItem item : multifiles) {
                item.write(new File("C:/TurboC++/Disk/TurboC3/BIN/Java/Eclipse/Upload-Servlet/" +item.getName()));
            }
        } 
        catch (Exception e) {
            e.printStackTrace();
        } 
    }
}

> 抱歉发布了整个代码,但我无法解决它。

您的 html 表单元素的 action 属性值是 URL 到 servlet 的值,该 servlet 将接收来自您提交表单的 http 请求。您的 action 属性设置为 upload。看来您确实希望将其设置为 /FileUpload.

请注意,将其设置为 JUST "/FileUpload" 可能不够,但您应该试一试。您可能需要指定整个 URL(例如 http://server.com/context/FileUpload),或者指定相对于 jsp 页面的 URL(例如 /FileUpload)。