Java 获取多部分表单的一部分

Java get part of muiltipart form

我有一个公式,其中有 4 个文件需要上传。 因为我使用的是 OpenCms,它会自动上传文件夹中的所有文件,所以我不需要自己这样做。 现在的问题:我需要一个 enctype="multipart/form-data" 公式,以便软件可以上传它。

现在我无法使用 request.getParameter("") 读取参数,而是使用 FileItems 列表和迭代器。 但是 List<FileItems> 我得到 returns [].

也许你能帮我解决这个问题。这是我的代码的一部分:

private void createNachricht(CmsObject cms, HttpServletRequest request) {
    System.out.println("execute createNachricht...");
    List<CmsProperty> bildprops = new ArrayList<CmsProperty>();
    List<CmsProperty> props = new ArrayList<CmsProperty>();
    Map<String, String> allRequestData = new TreeMap<String, String>();
    try {
        if (ServletFileUpload.isMultipartContent(request)) {
            System.out.println("isMultipartContent");
            DiskFileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload servletFileUpload = new ServletFileUpload(
                    factory);
            @SuppressWarnings("unchecked")
            List<FileItem> fileItemsList = servletFileUpload
                    .parseRequest(request); // returns [] so it's empty...
            Iterator<FileItem> it = fileItemsList.iterator();
            while (it.hasNext()) {
                FileItem fileItemTemp = it.next();
                if (!fileItemTemp.isFormField()) {
                    StringBuilder fileName = new StringBuilder(
                            sanitizeFilename(fileItemTemp.getName()));
                    System.out.println("fileName: " + fileName);
                } else {
                    String name = fileItemTemp.getFieldName();
                    String val = fileItemTemp.getString("utf-8");
                    allRequestData.put(name, val);
                    System.out.println("name: " + name);
                    System.out.println("value: " + val);
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    // more code here...
}

文件到达请求流,可以读取一次。我猜你的 CMS 已经读取了这个请求流,所以它现在是空的,ServletFileUpload 无法从中读取任何内容。

向您的 CMS 索要文件。请参阅您的 CMS 文档,了解如何获取与上传文件一起解析的多部分参数。