Skip to content

Instantly share code, notes, and snippets.

@EudesSilva
Created March 17, 2013 20:05
Show Gist options
  • Save EudesSilva/5183386 to your computer and use it in GitHub Desktop.
Save EudesSilva/5183386 to your computer and use it in GitHub Desktop.
FileUpload, criar um diretório chamando ( upload ) na raiz do sistema, quando o arquivo for salvo será associado um número randomizado ao seu nome para evitar repetições.
package br.com.javamais.helper;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.FileUploadEvent;
/*
javamais.com.br
Managed Bean, com responsavilidade de realizar upload de
bits para o diretório ( upload ) que deve ser criado no diretório
raiz do sistema. Associa também um número randomizado ao nome do arquivo
para evitar repetições.
Exemplo:
Em um sistema web criar diretório em (WEB-INF/upload)
*/
@ManagedBean(name = "MBFileUpload")
@SessionScoped
public class FileUpload {
private static final long serialVersionUID = 1L;
private String destination = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/") +"upload\\";
private String pathFile = "";
public void handleFileUpload(FileUploadEvent event) {
FacesMessage msg = new FacesMessage("Arquivo ", event.getFile().getFileName() +" Carregado!" );
FacesContext.getCurrentInstance().addMessage(null, msg);
try {
copyFile(event.getFile().getFileName(), event.getFile().getInputstream());
} catch (IOException e) {
e.printStackTrace();
}
}
private String getRandomFileName() {
int i = (int) (Math.random() * 10000000);
return String.valueOf(i);
}
private void seExistirArquivoExclua(String arquivo) {
if (arquivo != null) {
File file = new File(arquivo);
if (file.exists()) {
file.delete();
}
}
}
public void copyFile(String fileName, InputStream in) {
try {
OutputStream out = new FileOutputStream(new File( destination + getRandomFileName() + "_" + fileName ));
int read = 0;
byte[] bytes = new byte[1024];
while ((read = in.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
in.close();
out.flush();
out.close();
if( ! pathFile.isEmpty() ) {
seExistirArquivoExclua ( pathFile );
}
pathFile = destination + getRandomFileName() + "_" + fileName;
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment