[RESOLVIDO]Salvar imagem e caminho - Salva somente a imagem - Vraptor[RESOLVIDO]

5 respostas
1

Galera,

Estou implemetando um código, onde eu consigo salvar a imagem, mas não consigo salvar o caminho da imagem.
Tenho uma classe chamada Subgrupo, que contém.
ID - Nome - Imagem

Sendo nome e imagem String.

No meu controller, eu coloquei assim.

// Adicionar
	@Post("/subgrupo")
	public void adiciona(Subgrupo subgrupo, UploadedFile imagem) {
		String diretorioUpload = "/home/kde/foto";
		File destinoArquivo = new File(diretorioUpload, imagem.getFileName());
		try {
			IOUtils.copyLarge(imagem.getFile(), new FileOutputStream(
					destinoArquivo));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		dao.salva(subgrupo);
		// Redireciona para a listagem, após a inserção.
		result.redirectTo(this).lista();
	}

No meu dao, está assim.

Na minha jsp

<div id="conteudo">
		<form id="subgrupoForm" action="<c:url value="/subgrupo"/>"
			method="POST" enctype="multipart/form-data">
			<fieldset>
				<legend>Adicionar Subgrupo</legend>
				<label for="nome">Nome:</label>
				<input id="subgrupo.nome" type="text" name="subgrupo.nome"/>
				<input type="file" name="imagem">
				<button type="submit">Salvar</button>
				<button type="reset">Limpar</button>
				</fieldset>
		</form>
	</div>

Ele ta salvando a imagem na pasta, e salvando o nome. Mas não está salvando o nome da imagem.
Como eu coloco no meu controller, para ele salvar a imagem com o id ?

Gracias!!!

5 Respostas

L

imagem.getFileName() deveria retornar o nome do arquivo que o usuario fez o upload…

se vc quiser salvar com o id do subgrupo, vc precisa pegar depois do dao.salva(…)

1

Entendi!
Vou implementar e volto.
Valeus!

1

Funciou aqui! Mas somente no linux.

Como eu coloco o caminho da pasta das imagens, indepedente do sistema operacional?
No Windows não rodou. Tentei assim.

public Imagens() {                     
        String pastaImagens = ("/WEB-INF/imagens");  
        this.pastaImagens = new File(pastaImagens);     
        File destino = new File(pastaImagens);  
        destino.mkdir();  
    }

No linux, funcionou certinho.
Assim.

public Imagens() {                     
        String pastaImagens = ("/home/kde");  
        this.pastaImagens = new File(pastaImagens);     
        File destino = new File(pastaImagens);  
        destino.mkdir();  
    }

Valeus!

L

no windows a barra não é a /, é a … vc tem que usar o separator do sistema operacional, tem isso no File.

1

Cara, consegui.

Coloquei aqui.

String pastaImagens = ("/imagens");  
        this.pastaImagens = new File(pastaImagens);     
        File destino = new File(pastaImagens);  
        destino.mkdir();

Com a sua ajuda, ta salvando em uma pasta na aplicação. Ficou perfeita.

Criado 8 de novembro de 2012
Ultima resposta 10 de nov. de 2012
Respostas 5
Participantes 2