File upload 使用p:fileupload primefaces上载文件时发生java.io.FileNotFoundException

File upload 使用p:fileupload primefaces上载文件时发生java.io.FileNotFoundException,file-upload,jsf-2,primefaces,File Upload,Jsf 2,Primefaces,当我使用p:fileupload组件上载文件时,有时会出现此错误: 3 avr. 2013 12:02:10 com.sun.faces.renderkit.ClientSideStateHelper doGetState GRAVE: C:\Users\user\AppData\Local\Temp\upload_62661b9d_13dcf1c54c0__8000_00000270.tmp (Le fichier spécifié est introuvable) java.io.F

当我使用p:fileupload组件上载文件时,有时会出现此错误:

    3 avr. 2013 12:02:10 com.sun.faces.renderkit.ClientSideStateHelper doGetState
GRAVE: C:\Users\user\AppData\Local\Temp\upload_62661b9d_13dcf1c54c0__8000_00000270.tmp (Le fichier spécifié est introuvable)
java.io.FileNotFoundException: C:\Users\user\AppData\Local\Temp\upload_62661b9d_13dcf1c54c0__8000_00000270.tmp (Le fichier spécifié est introuvable)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at org.apache.commons.fileupload.disk.DiskFileItem.readObject(DiskFileItem.java:719)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
如果我只上传一个文件,效果很好,但是当我尝试上传更多的文件时,我遇到了这个问题

这是我的密码:

    <h:form  prependId="false" enctype="multipart/form-data">


                <p:fileUpload   mode="advanced" widgetVar="monupload"   auto="true"
                    style="display:none;" id="ajouterUpload" styleClass="monfileupload"
                     fileUploadListener="#{articlesMB.handleFileUpload}"  />
                <p:commandLink id="mylink" onclick="uploaderAjouter();">
                    <h:graphicImage id="Ajouterimage"
                        value="http://localhost:8080/images/without.png" height="48"
                        width="48"  />
                </p:commandLink>

            </h:form>
我还测试了将其设置为web.xml,但出现了相同的错误,但使用了新路径:

     <init-param>
    <param-name>uploadDirectory</param-name>
    <param-value>/Users/primefaces/temp</param-value>
  </init-param>
你知道吗

我想问题出在操作系统上没有


谢谢您

您需要multiple=true才能使用


我使用了这个路径D:/tmp/。也许试着把C:也放进去。我在web文件中也有这个过滤器:org.primefaces.webapp.filter.fileuploadfilter我也使用这个过滤器,但它并不能解决问题。请您向我解释更多,系统如何处理这个tmp文件,然后…尝试删除enctype=multipart/form data。我有一个简单的表单,你有没有把commons文件上传,commons io JAR添加到你的类路径中?还可以删除uploadDirectory参数,临时文件不需要它就可以上载目录。用它对我有用。
<p:fileUpload multiple="true" ...>