java - 使用servlet和JSP上传文件时ServletFileUpload parseRequest()编译错误

标签 java jsp servlets

我正在尝试使用servlet和JSP实现图像上传

我的 JSP 页面非常简单,只有以下形式:

<form method="post" action="${pageContext.request.contextPath}/uploader" enctype="multipart/form-data">
    <input type="file" name="file" value="Select an image..." />
    <input type="submit" value="Upload Now" />
</form>

相应的 servlet 和 servlet-mapping 在 web.xml 中描述。 .
还有我的doPost方法如下:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();

    FileItemFactory itemFactory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(itemFactory);

    if (!contentType.equals("image/png")) {
        out.println("Only PNG image files supported.");
        continue;
    }

    try {
        List<FileItem> items = upload.parseRequest(request); // here is an error
        for (FileItem item : items) {
            String contentType = item.getContentType();

            File uploadDir = new File(UPLOAD_DIR);
            File file = File.createTempFile("img", ".png", uploadDir);

            item.write(file);

            out.println("File uploaded.");
        }
    } catch (FileUploadException e) {
        out.println("Upload failed.");
        return;
    }
}

但是编译器在以下行中提示:List<FileItem> items = upload.parseRequest(request); :

The method parseRequest(RequestContext) in the file FileUploadBase is not applicable for the arguments (HttpServletRequest).

在答案中How to upload files to server using JSP/Servlet?此方法不会产生任何错误:

List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);

最佳答案

如果我看到这里org.apache.commons.fileupload 请求应该是 ServletRequestContext 而不是 HttpServletRequest :

List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(new ServletRequestContext(request));

关于java - 使用servlet和JSP上传文件时ServletFileUpload parseRequest()编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41361841/

相关文章:

html - 如何使用 Servlet 从 HTML 表单中检索 URDU 数据(UTF-8)以插入 MYSQL 数据库

java - 如何以编程方式在 Servlets 3.x 中设置 <security-constraint>?

java - 从 Guava Cache call() 优雅退出

java - 泛型与类<?>

java - 使用 JOIN 从单个 SQL 查询将汽车预订添加到汽车对象

java - 创建一个大文本框来获取段落输入

java - 如何读取具有可变数组深度和结构的复杂 JSON 字符串?

java - 我有一个使用 http 和 https 协议(protocol)的 JMS - ActiveMQ

java - 将图像加入到服务器上的 POJO 中,然后使用 Hibernate 进行持久化?

java - 3.0之前版本的异步Servlet的解决方案?