【问题标题】:Upload file in JSF primefaces在 JSF primefaces 中上传文件
【发布时间】:2012-04-04 20:14:13
【问题描述】:

我正在尝试使用简单的表单上传文件,但它总是返回到同一页面。要查找错误或任何错误,我只想在输出中写入我上传的文件的名称。一旦我能得到文件名,我想我可以处理如何处理整个文件。所以这是我的代码:

<h:form enctype="multipart/form-data">    
            <h:outputText value="Argazkia: "/>
            <p:fileUpload value="#{jokoBerriaController.file}" mode="simple"/>
            <p:commandButton value="Bidali" ajax="false" actionListener="#{jokoBerriaController.upload()}"/>
</h:form>

控制器:

import javax.faces.bean.ManagedBean;
import org.primefaces.model.UploadedFile;

@ManagedBean
public class jokoBerriaController {  

    public static UploadedFile file; 

    public UploadedFile getFile() {  
        return file;  
    }  

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

    public void upload() {          
        System.out.println("file " + file.getFileName());
    }  
}

我已经添加了

<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>

在我的 web.xml 文件中,但我还没有添加 commons-io 和 commons-fileupload 库。我读过我必须将下一个代码放在我的 pom.xml 文件中,但我找不到该文件。

<dependency> 
<groupId>commons-fileupload</groupId> 
<artifactId>commons-fileupload</artifactId> 
<version>1.2.2</version> 
</dependency> 
<dependency> 
<groupId>commons-io</groupId> 
<artifactId>commons-io</artifactId> 
<version>1.4</version> 
</dependency>

感谢您的帮助。

PD:对不起我的英语。

【问题讨论】:

  • 属性“allowTypes”限制文件类型。另请参阅 的其他属性。

标签: java jsf file-upload primefaces


【解决方案1】:

如果您找不到 pom.xml,那么您没有使用 maven 构建应用程序,因此您只需将下载的 jar 文件复制到您的 WEB-INF/lib 文件夹即可。下载 commons-fileupload-1.2.2.jar 和 commons-io-1.4 并将其添加到该文件夹​​中。

【讨论】:

    【解决方案2】:

    This post was really helpful.

    您需要注意所有细节。 WEB-INF/lib中必须包含所有依赖,web.xml中的servlet过滤器必须声明正确。

    我遇到了类似的问题,我按照该帖子中的提示解决了问题。

    【讨论】:

      【解决方案3】:

      你添加了吗:

      <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>
      

      到您的 web.xml 文件并将 commons-io 和 commons-fileupload 添加到您的库路径?

      【讨论】:

      • 我已经编辑了我的问题。如果可以继续帮助我,我真的很感激。
      【解决方案4】:

      您确实应该添加 commons-io 和 commons-fileupload 库。 您可以从以下链接将它们下载为 .jar 文件。 然后您需要将 jar 文件添加到您的项目中。

      http://commons.apache.org/io/

      http://commons.apache.org/fileupload/

      将这些 jar 文件添加到您的项目后,您应该能够让文件上传工作。

      【讨论】:

        猜你喜欢
        • 2013-07-23
        • 1970-01-01
        • 2012-03-19
        • 2014-02-03
        • 1970-01-01
        • 2013-09-07
        • 2014-06-22
        • 2013-12-16
        • 2017-09-26
        相关资源
        最近更新 更多