Como receber o endereço de um arquivo na jsp e capturá-lo na servlet?

6 respostas
F

boa tarde para todos…
essa é minha primeira pergunta aki e espero conseguir explicar minha dúvida…

preciso disponibilizar em uma jsp um campo para o usuário selecionar um arquivo em seu computador … o arquivo é um .xls e eu não tenho idéia de onde estará esse arquivo na máquina do usuário, por isso aquele esquiminha do explorer para ele selecionar o arquivo e tals… eu quero saber como capturar essa string que aparece com[flash][wmv]
o caminho total do endereço do arquivo!!?

exs:

**esse é um pedacinho da minha jsp onde eu abro a solicitação para o usuário selecionar o arquivo

<table cellspacing="0" cellpadding="0" border="0" width="740" align="center">
  <tr>
       <td colspan="2">Arquivos a anexar</td>
  </tr>
  <tr align="center">
     <td>
          <input type="file" name="arquivo" size="70" value="" />
     </td>
   </tr>
</table>

**esse é o meu form:

<form method="POST" name="form" action="#" onsubmit="javascript: return validarForm(this);" >

**usei esse form para um outra operação onde o usuário poderia selecionar vários arquivos e mandar em um mesmo submit… mas tbm não resolveu minha vida…

<form method="POST" name="form" action="#" onsubmit="javascript: return validarForm(this);" enctype="multipart/form-data">

**esse é um pedaço da servlet onde quero essa indformação:

//private String importararquivo(MultipartRequest request) ou?
private String importararquivo(HttpServletRequest request)
throws SQLException, IOException
{
   //FileItem[] doc = request.getTodosArquivos(); ou?
   String doc = request.getParameter("arquivo");
   Be be = null;
   try {
      be = new NaiImportarArquivoBe();
      be .importarArquivo(documentoAnexo);
   }
   finally {
      if (be != null) {
         be = null;
      }
   }
      
   return "/mensagem/ViewSucesso.jsp";
}

sugestões!!?

se alguém puder ajudar… vlw!!!

6 Respostas

T
public String importararquivo(HttpServletRequest request, HttpServletResponse response)  
    throws SQLException, IOException  { 
    String doc = request.getParameter("arquivo");
    File file = lerArquivo(doc);
    //depois vc cloca o que quer fazer com o arquivo.
}
    
private File lerArquivo(String nomeArquivo) {       
        try {
            File arquivo = new File(nomeArquivo);
        } catch (FileNotFoundException ex) {
            System.out.println("Arquivo nao encontrado");
        } catch (IOException ex1) {
            System.out.println("Erro lendo arquivo");
        }
}
F

thimor… dessa forma como vc descreveu eu consigo pegar somente o nome do arquivo… ex.: ArquivoTeste.xls
eu preciso do caminho completo onde esse arquivo está… ex.: C:\Users\Desktop\ArquivoTeste.xls
vou usar a API POI para ler esse arquivo .xls e gravar as informações no meu banco de dados… pelo que eu entendi na documentação da API, e os testes confirmaram, para usar essa API eu preciso passar o caminho completo do arquivo!!!

agradeço mto pela atenção, mas ainda não consegui resolver meu problema!!!

se alguém tiver sugestões…

vlw!!!

U

cara para vc pegar o caminho completo vc tera que ultilizar o commons-fileupload
vlw
abs

U

so mais uma coisa sugiro que crie esse tipo de Tópico em Desenvolvimento WEB
vlw
abs

T

quando vc tiver com o arquivo vc usa o metodo:

getCanonicalPath();

que ele retorna o caminho absoluto do arquivo.

qualquer coisa segue a api da classe file.
http://www.j2ee.me/javase/6/docs/api/java/io/File.html#getCanonicalPath()

F

Vc quer o caminho absoluto na maquina do cliente? Acho que o protocolo HTTP nao fornece essa informacao

Criado 16 de novembro de 2009
Ultima resposta 19 de nov. de 2009
Respostas 6
Participantes 4