将文件上传到Java

问题描述 投票:0回答:0

我已经为此工作了2天,终于放弃并在这里提问。 我希望能够将(文本)文件上传到PC。 我正在进一步研究的这个项目使用码头来服务页面。 这是到目前为止我的代码:

HTML部分:

    <form action="upload" method="post" enctype="multipart/form-data">
            <input type="file" name="file" />
            <input type="submit" />
    </form>

Java第1部分:

    ContextHandler uploadContext = new ContextHandler();
    uploadContext.setContextPath("/upload");
    uploadContext.setBaseResource(getBaseResource());
    uploadContext.setClassLoader(Thread.currentThread().getContextClassLoader());
    uploadContext.setHandler(new UploadHandler());

    HandlerList handlers = new HandlerList();
    handlers.setHandlers(new Handler[] {uploadContext, configContext, sendGcodeContext, adjustManualLocationContext, getSystemStateContext, resourceHandler, new DefaultHandler()});

Java第2部分:

public class UploadHandler extends AbstractHandler{
    @Override
    public void handle(String target,Request baseRequest,HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {

                   Part filePart = request.getPart("file"); // Retrieves <input type="file" name="file">
                   String filename = getFilename(filePart);
                   System.out.println(filename);
                   baseRequest.setHandled(true);
    }
}

private static String getFilename(Part part) {
    for (String cd : part.getHeader("content-disposition").split(";")) {
        if (cd.trim().startsWith("filename")) {
            String filename = cd.substring(cd.indexOf('=') + 1).trim().replace("\"", "");
            return filename.substring(filename.lastIndexOf('/') + 1).substring(filename.lastIndexOf('\\') + 1); // MSIE fix.
        }
    }
    return null;
}

如您所见,文件处理本身还不存在。 到目前为止,只有文件名,因为这已经行不通了。

将显示以下消息:

HTTP 500错误,错误为:Content-Type!= multipart / form-data

有人可以帮忙吗? 我仍然感到沮丧,因为它仍然无法正常工作。

亲切的问候,丹尼尔

java html servlets jetty
© www.soinside.com 2019 - 2024. All rights reserved.