Salvar Imagem

8 respostas
marcos_verd

oie
tenho uma pagina em java que permite que o usuário insira uma imagem (parecido com uma rede social)

porem não sei como salvar esta imagem em um pacote dentro de minha aplicação…

a imagem pode estar em qualquer lugar do computador, porem para evitar usar o banco de dados para salva-la gostaria de, via código, fazer uma cópia em meu pacote imagem… (muito parecido com uma rede social)…

sera que alguém poderia me ajudar??

8 Respostas

U

aqui vai abrir uma janela que vc pode navegar nas suas pasta e selecionar o arquivo

JFileChooser chooser = new JFileChooser();
    chooser.setFileFilter(new ExtensionFileFilter("Arquivos de imagem", "png", "gif", "jpeg"));
    if (chooser.showOpenDialog(chooser) != JFileChooser.APPROVE_OPTION) {
      return;
    }
    // Aqui é informado o caminho do arquivo no console, para manipular o caminho do arquivo 
    //é so pega esse codigo: chooser.getSelectedFile().toString())
    System.out.println("Arquivo selecionado: " + chooser.getSelectedFile().toString());
M

sua aplicação é desk ou web?

marcos_verd

é desk…

tipo para fazer a janela que pega a imagem ja consegui porem não consigo fazer uma cópia dela em meu pacote próprio para imagens :s…

M

carra nunca fiz isso pra desk só pra web mesmo… tem um codigo aqui mas é pra web se ajuda ta ai…

public String fileUploadAction(FileUploadEvent event) throws IOException {
		try {
			arquivo.setNome(event.getFile().getFileName());
			byte[] conteudo = event.getFile().getContents();
			String caminho = "C:\\arquivos\\" + event.getFile().getFileName();
			FileOutputStream fos = new FileOutputStream(caminho);
			fos.write(conteudo);
			fos.close();
			HibernateDao<Arquivos> hibernateDao = new HibernateDao<Arquivos>(Arquivos.class);
			arquivo.setCaminho(caminho);
			arquivo.setTamanho(conteudo.length);
			String nomeArquivo = arquivo.getNome();
			int e = nomeArquivo.lastIndexOf(".");
			arquivo.setTipo(nomeArquivo.substring(e));
			hibernateDao.salvar(arquivo);
			FacesContext context = FacesContext.getCurrentInstance();
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Arquivo Salvo!", arquivo.getNome()));
		} catch (Exception e) {
			FacesContext context = FacesContext.getCurrentInstance();
			context.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Erro!", " " + e));
		}
jeferson.januario
FIle imagem = new File(jFildTextFIleName.getText());
//onde jFIldTextFileName é o campo que esta setado com o caminho da imagem
marcos_verd

blz mais existe um modo de eu pegar ela desse campo sitado e fazer uma cópia no meu Pacote Imagens??
via código???

jeferson.januario

tem sim faz assim

//entrada 
File inFile = new File("caminho que vc recebeu do jfilechoose); // exemplo :  fileChooser.getSelectedFile().getAbsolutePath();
//saida
 File outFile = new File("seuprojeto/imagens/");
 
// abrimos os streams para leitura/escrita
FileInputStream fis = new FileInputStream(inFile);
FileOutputStream fos = new FileOutputStream(outFile);
 
// Obtém os canais por onde lemos/escrevemos nos arquivos
FileChannel inChannel = fis.getChannel();
FileChannel outChannel = fos.getChannel();
 
// copia todos o conteúdo do canal de entrada para o canal de saída
outChannel.transferFrom(inChannel, 0, inChannel.size());
fis.close();
fos.close();
inChannel.close();
outChannel.close();
ViniGodoy

A partir do Java 7, é mais fácil:

Files.copy(Paths.get("seuProjeto/imagem.png"), Paths.get("/pastaDeDestino/imagem.png"));

Mais informações:

Criado 6 de junho de 2012
Ultima resposta 16 de jun. de 2012
Respostas 8
Participantes 5