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>