【问题标题】:p:fileUpload not working (file is null)p:fileUpload 不工作(文件为空)
【发布时间】:2017-12-13 23:25:23
【问题描述】:

我无法使 fileUpload 选项起作用。我一直让消息文件为空。 你能告诉我如何解决这个问题吗?

这是我的 xhtml:

<h:form enctype="multipart/form-data">
    <p:fileUpload mode="simple" id="recupereFile" value="#{FileUploadView.uploadedFile}" />
    <p:commandButton value="Upload" action="#{FileUploadView.upload}" ajax="false" />
</h:form>

这是我的 java:

@ManagedBean(name="FileUploadView")
public class FileUploadView {

    private UploadedFile file;

    public UploadedFile getFile() {

        System.out.println(file);
        return file;

    }

    public void setFile(UploadedFile file) {
        this.file = file;
    }

    public void upload() {

        UploadedFile file = getFile();

        System.out.println("hello");
        System.out.println(file);

        if(file != null) {
            FacesMessage message = new FacesMessage("Succesful", file.getFileName() + " is uploaded.");
            FacesContext.getCurrentInstance().addMessage(null, message);
            System.out.println(message);
        }
    }
}

文件始终为空!

我的 web.xml

    <filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <filter-class>
org.primefaces.webapp.filter.FileUploadFilter
</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <servlet-name>Faces Servlet</servlet-name>
  </filter-mapping>

我有这些罐子: commons-fileupload-1.3.1.jar commons-io_2.5.jar

感谢您的帮助。

【问题讨论】:

标签: file-upload primefaces


【解决方案1】:

几个月前我们在这里遇到了类似的问题。做这件事的同事离开了我们公司,所以我不能问他。无论如何,这就是我的 web.xml 的相关部分的样子。

<filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <filter-class>org.primefaces.webapp.filter.FileUploadFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
    <url-pattern>*.jsf</url-pattern>
</filter-mapping>

我们还有这个上下文参数:

<context-param>
    <param-name>primefaces.UPLOADER</param-name>
    <param-value>auto</param-value>
</context-param>

【讨论】:

    【解决方案2】:

    p:fileUploadvalue 属性应该对应于bean 中UploadedFile 的名称。

    如果您将p:fileUpload 中的FileUploadView.file 替换为FileUploadView.uploadedFile,它应该可以工作:

    <p:fileUpload mode="simple" id="recupereFile" value="#{FileUploadView.file}" />
    

    【讨论】:

    • 嗨,谢谢你可能是对的。然而,它不起作用,即使我改变了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-09
    • 2012-04-21
    • 2014-03-14
    • 1970-01-01
    • 2017-07-13
    • 2018-02-21
    • 1970-01-01
    相关资源
    最近更新 更多