0

I want to download blob files from mysql database I have a class named (projeler)

public class projeler {
    private String projead;
    private String projekonu;
    private String projedurum;
    private String projegorev;
    private String projebastar;
    private String projebittar;
    private InputStream  projekanit;
getters and setters
}


In below datatable kntrl.projelistedondur() method return arraylist (projeler) from database to display all of data in it.

 <h:dataTable border="1" cellpadding="7px" value="#{kntrl.projelistedondur()}" var="proje"  id="projetablo" rendered="#{kntrl.projetabloaktif}">
                <h:column >
                    <f:facet name="header" >Proje Adı</f:facet>
                        #{proje.projead}
                </h:column>
                <h:column>
                    <f:facet name="header">Proje Konusu</f:facet>
                        #{proje.projekonu}
                </h:column>
                <h:column>
                    <f:facet name="header">Proje Durumu</f:facet>
                        #{proje.projedurum}
                </h:column>
                <h:column>
                    <f:facet name="header">Proje Görevi</f:facet>
                        #{proje.projegorev}
                </h:column>
                <h:column>
                    <f:facet name="header">Proje Başlangıç Tarihi</f:facet>
                        #{proje.projebastar}
                </h:column>
                <h:column>
                    <f:facet name="header">Proje Bitiş Tarihi</f:facet>
                        #{proje.projebittar}
                </h:column>
                <h:column>
                    <f:facet name="header">Proje Kanıtı</f:facet>
                    <p:commandLink  ajax="false" value="Kanıtı İndir" action="#{kntrl.projedownload(file)}">

         </p:commandLink>
                </h:column>
            </h:dataTable>

In this column am going to pass my inputstream(so blob variable) to backing bean method.

<h:column>
                    <f:facet name="header">Proje Kanıtı</f:facet>
                    <p:commandLink  ajax="false" value="Kanıtı İndir" action="#{kntrl.projedownload(file)}">

         </p:commandLink>


filedownload method in backing bean

 public StreamedContent  projedownload(projeler file){
         StreamedContent download = null;
        try{         
            // byte[] bytes = (byte[]) file.get
    //InputStream ist =(InputStream) file;
     //download = new DefaultStreamedContent(ist, "application/pdf","projekanit.pdf");
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ExternalContext externalContext = facesContext.getExternalContext();
    externalContext.setResponseHeader("Content-Type", file.getContentType());
    externalContext.setResponseHeader("Content-Length", file.getContent().length);
    externalContext.setResponseHeader("Content-Disposition", "attachment;filename=\"" + file.getFileName() + "\"");
    externalContext.getResponseOutputStream().write(file.getContent());
    facesContext.responseComplete();


        }
        catch(Exception e){
                e.printStackTrace();

            // Add error message
            FacesMessage errorMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Download error", e.getMessage());  
            FacesContext.getCurrentInstance().addMessage(null, errorMsg);
        }
         return download;
    }


I have tried above.But didn't work.Briefly am sending inputstream to file download method as java.io.File and am confused.How can i download files from database.

BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
Samet Dağ
  • 137
  • 5
  • 20
  • Please clarify "didn't work"... That is what an end-user describes. You as a developer can investigate more I'd think and debug... and state what does and does not happen in the code – Kukeltje May 07 '17 at 07:46
  • I have displayed datatable correctly. In one column have a commandbutton to download pdf or any file from database .When i click the button nothing happened."Didn't work " for that.I hope you understand what i mean – Samet Dağ May 07 '17 at 17:06

0 Answers0