Pegar o path completo do Input Type

Olá pessoal,

Preciso pegar o caminho completo de um Input Type do JSP.

no JSP:

<form action="CallPerlFromJavaServlet" method="post">
	<input type="file" name="arquivo"><br />
	<input type="submit" value="Run">
</form>

no Servlet:

String arquivo = request.getParameter("arquivo");

O que eu preciso é pegar este arquivo e copiar para outra pasta, por exemplo:

Aqui estou copiando um arquivo hello.pl, mas o que eu preciso é copiar o arquivo do input type file no JSP.

Process copyFile = Runtime.getRuntime().exec("cp /Users/edsonmartins/Documents/Perl/hello.pl /Users/edsonmartins/Documents/");

Alguém pode me ajudar?

Obrigado

Boa tarde, Alan.

O componente File Upload do HTML não serve para enviar o caminho do arquivo, mas sim o seu conteúdo.
Embora o Internet Explorer, e somente ele, envie o caminho completo do arquivo no cabeçalho da requisição HTTP, ele também envia todo o conteúdo.
Se você quer fazer simplesmente uma cópia de arquivo no servidor, troque o type=“file” para type=“text” para criar um campo texto simples e digite ali o caminho completo do arquivo.
O inconveniente é que assim você perde a facilidade de selecionar o arquivo através de uma caixa de diálogo, mas aí, dependendo do seu caso, dá pensar em formas de facilitar a seleção do arquivo.

Boa tarde Luiz,

Não daria certo pegando o path, pois a aplicação roda no servidor, então não reconheceria a pasta do usuário /Users/edsonmartins/Documents/…

Preciso mesmo é copiar o arquivo. Sabe me dizer como recebo este arquivo no Servlet?

Eu recebendo ele era só eu copiar para onde eu quisesse. Dá forma que eu fiz eu apenas pego o nome do arquivo.

Obrigado,
Edson

Certo, então o que você quer é o upload de arquivos tradicional mesmo, o que não inclui olhar o diretório do usuário, afinal nenhum site na internet consegue acessar seu PC, mas é o seu navegador que envia o arquivo.
Entendido isso, sugiro usar um componente especificamente para isso ao invés da API servlet pura. No caso, posso indicar o componente do apache:

http://commons.apache.org/fileupload/
http://commons.apache.org/fileupload/using.html

Para o q vc deseja a melhor solução é usar FileUpload dê uma olhada:

http://commons.apache.org/fileupload/streaming.html