Primefaces上传文件 - 上传后图片无法刷新

时间:2014-09-26 15:23:12

标签: file-upload primefaces jsf-2.2

上传图片后出现问题。上传后图像不会刷新。 bean是会话范围的,上传后我需要手动刷新页面以查看新图像。如何在上传图像/文件后自动刷新图形图像?谢谢

以下代码可以成功上传图片,但上一张图片仍然可见,新图片只有在刷新后才可见:

平台: jsf 2.2 ,tomcat 7.37 ,primefaces 5.0

 <h:form id="form" enctype="multipart/form-data">
        <p:growl id="growl_1" showDetail="true"/>    

  <p:panelGrid id="pg_photo" 
               style="margin-bottom:10px; 
               width: 50em" 
               styleClass="panelGridCenter"> 
            <f:facet name="header">
                <p:row>
                    <p:column>
                        <p:graphicImage 
                            id="gi_etud" 
                            width="150" 
                            height="120" 
                            value="#{etudiantProfilView.imageEtudAsStream}"/>
                    </p:column>
                    <p:column>
                        <p:fileUpload id="fu_photo" 
                                      value="#{etudiantProfilView.imageEtudUF}" 
                                      mode="advanced"
                                      dragDropSupport="true"
                                      fileLimit="10"
                                      sizeLimit="100000"
                                      allowTypes="/(\.|\/)(gif|jpg|jpeg|gif|png|PNG|GIF|JPG|JPEG)$/"
                                      auto="true"
                                      update="growl_1 gi_etud"
                                      fileUploadListener="#{etudiantProfilView.imageUploadListener}"
                                      >
                        </p:fileUpload>
                    </p:column>
                </p:row>
            </f:facet>
        </p:panelGrid>
 </h:form>

会话bean:

@ManagedBean
@SessionScoped
public class EtudiantProfilView implements Serializable {
//some stuff
 public void imageUploadListener(FileUploadEvent event) throws IOException {
//save  the image to the hard disk
}
//some stuff
}

1 个答案:

答案 0 :(得分:1)

我已经通过添加&#34; reload&#34;解决了刷新问题。行动到&#34; oncomplete&#34; uploadFile组件的属性:

  <p:fileUpload id="fu_photo" value="#{etudiantProfilView.imageEtudUF}" 
                                      mode="advanced"
                                      dragDropSupport="true"
                                      fileLimit="10"
                                      sizeLimit="200000"
                                      allowTypes="/(\.|\/)(gif|jpg|jpeg|gif|png|PNG|GIF|JPG|JPEG)$/"
                                      auto="true"
                                      update="@form"
                                      oncomplete="window.location.reload();"
                                      fileUploadListener="#{etudiantProfilView.imageUploadListener}"
                                      >
                        </p:fileUpload>