Como recuperar arquivos que inseri através de FileUpload Primefaces?

Olá,

sou novo aqui no fórum e estou com a seguinte problemática:

inseri alguns arquivos em um diretório do meu pc utilizando o FileUpload do primefaces, até ai tudo bem. Consigo carregar e inserir os arquivos no diretório que especifiquei. o problema agora está sendo para resgatar estes arquivos no diretório. Não tenho a mínima ideia de como proceder. Peço encarecidamente que me ajudem com esta questão. Vou postar meu código abaixo.

estou utilizando as bibliotecas : commons-fileupload 1.3.1.jar , commons-io-2.4.jar

código do meu Bean

package br.com.nooclix.primeupload.mb;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
import org.primefaces.model.UploadedFile;

@ManagedBean(name = “meuBean”)
@RequestScoped
public class FileUploadMB {

private String caminho;
private MeuBean meuBean;
private StreamedContent file;


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

public FileUploadMB() {
}

public StreamedContent getFile() throws FileNotFoundException {
    //essas variáveis locais eu uso para pegar o nome e a onde eu vou guardar
    String arquivo = getMeuBean().getNome();
    String caminho = getMeuBean().getCaminho();
    FileInputStream stream = new FileInputStream(caminho);
    file = new DefaultStreamedContent(stream, caminho, arquivo);
    return file;
}

public void processFileUpload(FileUploadEvent event) throws IOException {
    try {
        //Cria um arquivo UploadFile, para receber o arquivo do evento
        UploadedFile arq = event.getFile();
        InputStream in = new BufferedInputStream(arq.getInputstream());
        //copiar para pasta do projeto
        File file = new File("C:/Program Files/fotos/" + arq.getFileName());
        //O método file.getAbsolutePath() fornece o caminho do arquivo criado
        //Pode ser usado para ligar algum objeto do banco ao arquivo enviado
        caminho = file.getAbsolutePath();
        FileOutputStream fout = new FileOutputStream(file);
        while (in.available() != 0) {
            fout.write(in.read());
        }
        fout.close();
        FacesMessage msg = new FacesMessage("O Arquivo ", file.getName() + " salvo.");
        FacesContext.getCurrentInstance().addMessage("msgUpdate", msg);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

/**
 * @return the meuBean
 */
public MeuBean getMeuBean() {
    return meuBean;
}

/**
 * @param meuBean the meuBean to set
 */
public void setMeuBean(MeuBean meuBean) {
    this.meuBean = meuBean;
}

}

código do meu xhtml

<?xml version='1.0' encoding='UTF-8' ?>
<h:head></h:head>
<h:body>

    <ui:composition template="./newTemplate.xhtml">

        <ui:define name="top">
            <ui:insert name="top"/>
        </ui:define>

        <ui:define name="content" class="fieldsethome">






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

                <h2>
                    <h:outputText value="Carregar Arquivo"/>  
                </h2>

                <p:fileUpload fileUploadListener="#{meuBean.processFileUpload}"  label="Procurar..." auto="true"/> 


            </h:form>

            <p:messages severity="info" escape="false" showDetail="true" autoUpdate="true" closable="true"/>




        </ui:define>

        <ui:define name="bottom">

        </ui:define>
    </ui:composition>

    <br />
    <h:link outcome="welcomePrimefaces" value="Página de boas-vindas do Primefaces" />


</h:body>

O que você quer dizer com “recuperar” os arquivos?
Você quer ler os arquivos que colocou na pasta, verificar quantos tem, nomes, editar se for o caso ou listar esses arquivos e ter a opção de fazer download deles?

1 curtida

Exatamente isso amigo, ficarei muito grato se puder me ajudar, preciso listar todos eles na tela e ter a opção de visualizar ou fazer o download.