Imagem no servidor! ME AJUDEMMM

ae pessoal eu tenho uma aplicação vraptor e em uma tela de cadastro eu passo o caminho da imagem(caminho no pc do cliente) e eu preciso pegar essa imagem e salvar em uma pasta no servidor!!! como eu faço isso?!?! alguem tem soh algum exemplo para eu poder começar?!?!

NGM???

http://jakarta.apache.org/commons/fileupload/

Olha o exemplo que tem no site do VRaptor funciona perfeitamente:
http://www.vraptor.org/file-upload.html

Porém o tamanho dos arquivos estão limitados a 2 MB.

Inclua essas libs no classpath:

commons-fileupload-1.2.jar
commons-io-1.3.1.jar

eu nao consigi entender mtu bem a documentação ngm teeria um exemplo?

[quote=Pedrosa]Olha o exemplo que tem no site do VRaptor funciona perfeitamente:
http://www.vraptor.org/file-upload.html

Porém o tamanho dos arquivos estão limitados a 2 MB.

Inclua essas libs no classpath:

commons-fileupload-1.2.jar
commons-io-1.3.1.jar

[/quote]

vlw cara vou dar uma olhada e retorno qualquer coisa

ae cara eu consegui!! esta funcionando!! porem ele esta mandando a foto para este caminho com este nome esquisito:

temp\raptor.28859.upload

como eu faço para mudar caminho … nome!!! essas coisas!!!

e como eu publico essa imagem?!?! pois ela nun teria que estar dentro do meu .war!! e agora?!?! como vou chamar ela da minha jsp???

NGM:::???

???tah foda ak… alguem pdia ajuda neh!!!

Arthur,

Por favor não fique “UPando” o tópico, as suas dúvidas são tão importantes quanto as outras. Tenha paciência, se alguém souber, irá te ajudar.

fmz maus cara… eh q eu sempre respondo a maioria das duvidas… e nunk respondem as minhas cara!!!

[quote=arthurnn]fmz maus cara… eh q eu sempre respondo a maioria das duvidas… e nunk respondem as minhas cara!!![/quote]Tente minimizar isso procurando informações nas documentação (que é muito completa) e no google tbm, se/qdo alguém souber, vai te ajudar, não precisa “floodar” o tópico.

valeu!

Conseguiu?, depois da classe que te passei.

consegi mais ou menos… eu consegi fazer o upload da minha foto para a pasta ‘C:\Java\apache-tomcat-5.5.17\arthur’ porem como eu acesso a imagem da minha pagina??? pois eu soh posso acessar imagens q estao dentro da aplicação(deploy) o certo seria eu passar as fotos para o deploy!!! como eu faço isso cara!!!

Grave onde a sua aplicação leia corretamente, qual a dificuldade?

no cliente isso irá funcionar?!?!

cara eu nao consigo acessar a imagem eu preciso acessar ela assim

http://localhost:8080/loja/img/imagem.jpg

mais para onde eu joga ela… para eu poder acessar ela assim via internet??

Você grava no servidor caso tenha acesso, sim pode acessar daquele jeito, na classe Interceptada como está gravando o arquivo?

File dirc = new File(“C:\Java\apache-tomcat-5.5.17\webapps\loja”);
File file = File.createTempFile(“imagemCD_”, “.jpg”,dirc);

Olá meu caro colega!!!

Vamos acabar com o problema que aflinge a sua alma.

Em nome deste tópico e por ter tentado também, mas via AJAX que é uma outra conversa, eu implementei o upload de arquivo com base no vRaptor o qual também utilizo bastante.

Implementei e não tive problemas, sinceramente foi de primeira, inclusive com o nome correto, sem ser o nome temporário que é criado no momento do upload. Logo vamos ao que interessa:

Primeiramente implementei uma classe para facilitar o trabalho utilizando commons.io conforme sugerido por um de nossos nobres colegas:

package com.jwcunha.utils;


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.io.IOUtils;

/**
 *
 * @author jwcunha
 */
public class UploadFile{
    
    public void uploadFile(File file, String path, String fileName) throws FileUploadException{
        try{
            File uploadedFile = file;
            String separetedSO = "\\";
            String completePath = path+separetedSO+fileName;
            
            //System.out.println("File: "+uploadedFile.getAbsolutePath());
            InputStream input = new BufferedInputStream(new FileInputStream(
                    uploadedFile));
            OutputStream output = new BufferedOutputStream(new FileOutputStream(
                    new File(completePath)));
            
            
            IOUtils.copy(input,output);
            
        }catch(Exception ex){
            ex.printStackTrace();
        }       
    }   
}

Em seguida criei o formulário para envio, o detalhe para upload está, como vc deve saber, em alterar o enctype o qual ficará assim:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" >
<title>Upload de arquivo</title>
</head>
<body>
<form method="post" ACTION="arquivo.upload.logic" ENCTYPE='multipart/form-data'>
        File:<input type="file" name="fileInfo" ><br>
        <input type="submit" name="Submit" value="send"> 
        <input type="hidden" name="action" value="upload">
</form>

</body>
</html>

E para finalizar criei meu logic para receber os dados do formulário, aqui o detalhe está em pegar o realPath a partir da injeção do ServletContext utilizando o @In, desta forma no meu diretório web, onde ficam minhas jsps e afins eu criei um diretório chamados gravados, onde os arquivo serão armazenados.

package com.jwcunha.logic;

import java.io.File;

import org.apache.commons.fileupload.FileUploadException;
import org.vraptor.annotations.Component;
import org.vraptor.annotations.In;
import org.vraptor.annotations.InterceptedBy;
import org.vraptor.interceptor.MultipartRequestInterceptor;
import org.vraptor.interceptor.UploadedFileInformation;

import com.jwcunha.utils.UploadFile;
import javax.servlet.ServletContext;

@Component
@InterceptedBy(MultipartRequestInterceptor.class)
public class ArquivoLogic {
	
	@In 
	private ServletContext servletContext;
	
	@In(required=false)	
    private UploadedFileInformation fileInfo;
	public void upload() {		
		File file = fileInfo.getFile();
		//File file, String path, String fileName
		String path = this.servletContext.getRealPath("/")+"gravados";
		System.out.println(file.getAbsolutePath());
		UploadFile upFile = new UploadFile();
		try {
			upFile.uploadFile(file, path, this.fileInfo.getFileName());
		} catch (FileUploadException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}       
	}
	
            //lógica para referenciar o formulário como arquivo.formulario.logic no momento da chamada
	public void formulario(){
		
	}
}

e para finalizar o arquivo que indicará o sucesso da chamada do nosso método / action que é o upload.ok.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Confirmação de envio</title>
</head>
<body>
        O arquivo foi gravado com sucesso
 </body>
</html>

No mais é só importar as bibliotecas correspondentes e voilà monsieur.

É isso, espero ter ajudado!!!

[]'s