Gravar imagem no projeto (Upload) - Só funciona trás o caminho quando o usuário está local

Boa tarde amigos,

estou com um problema ao fazer um upload.

                String imagemPath = request.getParameter("imagem");

		File file = new File(imagemPath);

		BufferedImage img = ImageIO.read(file);

		ImageIO.write(img, "jpg", new File("C:\\" + file.getName()));
		// grava fisicamente

Quando Eu faço o upload da máquina onde está o projeto, ele funciona normalmente. Mas quando faço de outra máquina, ele não consegue ler a imagem.

Exemplo:

Subindo arquivo da minha máquina fica assim: [color=red]C:\Users\Public\Pictures\Sample Pictures\Jellyfish.jpg [/color]

Subindo arquivo da máquina de outro usuário fica assim: [color=red]C:\Users\lcosta\Pictures\timbeta.jpg[/color]

Ele só lê local… alguém pode me ajudar?

Obrigado Pessoal! :smiley:

Creio que se estiver em um servidor irá funcionar. Já tentou entrar pelo outro computador com o IP de onte esta o sistema : a porta? exemplo: 192.166.10.1:8080 ?

Está no servidor… =/

Ele só consegue enxergar os arquivos que estão no local do servidor, agora os arquivos que estão em outras máquinas… ele fala que não pode ler… =/

Aqui é utilizado o proxy, será que tem algo a ver com isso?

Não é o proxy… acabei de retirar aqui… =/

O seu código abaixo não é upload de forma nenhuma (já tive um colega que cometeu o mesmíssimo erro, e foi difícil convencê-lo que ele não tinha entendido o conceito de upload)… Ele só irá funcionar se o arquivo estiver na mesma máquina que o web container (por exemplo, o Tomcat).

Para fazer upload, você não pega o path do arquivo de um parâmetro do get ou post, e sim usa uma tag ou então alguma coisa que gere essa tag no HTML ou então um Flash (como é o caso do GMail no IE). E no upload você perde a informação do path do arquivo - pense bem. Quando você faz o upload de um arquivo para o GMail, ele não conhece a sua máquina, nem sabe se sua máquina é Windows, Linux ou alguma coisa mais bizarra (um telefone celular rodando Symbian, por exemplo). Portanto, um path de arquivo é completamente inútil para ele.

[quote=entanglement]O seu código abaixo não é upload de forma nenhuma (já tive um colega que cometeu o mesmíssimo erro, e foi difícil convencê-lo que ele não tinha entendido o conceito de upload)… Ele só irá funcionar se o arquivo estiver na mesma máquina que o web container (por exemplo, o Tomcat).

Para fazer upload, você não pega o path do arquivo de um parâmetro do get ou post, e sim usa uma tag ou então alguma coisa que gere essa tag no HTML ou então um Flash (como é o caso do GMail no IE). E no upload você perde a informação do path do arquivo - pense bem. Quando você faz o upload de um arquivo para o GMail, ele não conhece a sua máquina, nem sabe se sua máquina é Windows, Linux ou alguma coisa mais bizarra (um telefone celular rodando Symbian, por exemplo). Portanto, um path de arquivo é completamente inútil para ele.

[quote]

String imagemPath = request.getParameter("imagem");  
  
File file = new File(imagemPath);  
BufferedImage img = ImageIO.read(file);  
ImageIO.write(img, "jpg", new File("C:\\" + file.getName()));  

[/quote][/quote]

Sim sim… eu entendo que não é um Upload…

Só falei para “se tornar” mais fácil o enunciado ou para explicar melhor…

Eu sei fazer um upload… só que eu precisava utilizar com ajax… pelo que pesquisei aqui… tenho que utilizar um iframe escondido… algo do tipo… =/

Obrigado pela correção amigo.