Created
March 17, 2013 20:05
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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