Erro em implementação com Jakart FileUpload
27/07/2010
0
Fiz um sistema de upload com o jakarta commoms fileupload e o mesmo esta gerando um erro muito estranho. Ao executá-lo e escolher o arquivo, o browser abre uma janela pra fazer o download da minha pagina .jsp
segue codigo:
importação.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>WebTesterQualy</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style>body, td, a:link, a{font-family: Verdana;font-size: 10px;color: #000000;text-decoration: none;}a:hover{color: #FF0000;}input {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10px;background-color: #FFFFFF;border: 1px solid #000000;}</style><script type="text/javascript"> function validaarquivo(campo) { TamanhoString = campo.length; extensao = campo.substr(TamanhoString - 4,TamanhoString); if (TamanhoString == 0 ) { alert('Você precisa selecionar um arquivo antes de transmitir.'); return false; } else { var ext = new Array('.txt','.doc','.RET');//adicione as extensões desejadas for(var i = 0; i < ext.length; i++) { if (extensao == ext[i]) { flag = "ok"; break; } else { flag = "erro"; } } if (flag=="erro") { alert("Tipo de arquivo invalido.\nArquivos validos: .txt, .doc, .RET") document.formBaixa.arquivo.value=""; return false; } } caminhourl = "upload.jsp"; document.forms[0].action = caminhourl; window.document.forms[0].submit(); return true; } </script> </head> <body> <!--Formulário--> <form method="post" name="formulario" enctype="multipart/form-data" id="form"> <label for="arquivo">Enviar arquivo:</label> <input type="file" name="arquivo" id="arquivo" size="25" tabindex="15" accesskey="2" ContextHelp="Entre com o nome do arquivo ou utilize o botão brouse (pesquisar) ao lado." title="Digite a localização do arquivo ou utilize o botão Browse (pesquisar) para localizar. Para utilizar o botão Browse via teclado com o Internet Explorer, pressione a tecla espaço com o botão selecionado."> <input type="button" name="TRANSMITIR" value="Transmitir Arquivo" onClick="return validaarquivo(form.arquivo.value)" tabindex="30"> </body> </html> upload.jsp <%@page import="org.apache.tomcat.util.http.fileupload.FileItem"%> <%@page import="org.apache.tomcat.util.http.fileupload.FileUpload"%> <%@page import="org.apache.tomcat.util.http.fileupload.DiskFileUpload"%> <%@ page import="java.io.*" import="java.util.*" import="org.apache.commons.fileupload.*" contentType="text/plain" %><% boolean isMultipart = FileUpload.isMultipartContent(request); if (isMultipart) { //variáveis para auxiliar a busca no arquivo String nome = null; String linha=null; String linha1=null; String numero=null; String linhaValida=null; String valorPago = null; String lineDataBaixa = null; String dataBaixa = null; DiskFileUpload upload = new DiskFileUpload();//cria objeto para auxiliar na busca e no processo do arquivo para upload no disco rigido(client) List items = upload.parseRequest(request); //obtem os itens para upload Iterator iter = items.iterator(); //interação com os intens do upload upload.setSizeMax(50*1024*1024); //define o tamanho maximo do arquivo para upload 50Mb /* Processa os itens do upload */ //items.get(1); while (iter.hasNext()) { FileItem item = (FileItem) iter.next(); nome = item.getName(); //obtem o nome do arquivo StringBuffer bn = new StringBuffer(); bn.append("C:\\bla\\"); //define o diretório para gravação do arquivo. Nesse exemplo estou usando a raiz do servidor da minha aplicação bn.append("usuario.txt"); //armazena o nome arquivo para gravação /*Cria, lê, converter o arquivo para String pois ele vem em bytes e grava o arquivo no servidor. Ex: /teste.txt*/ File uploadedFile = new File(bn.toString()); item.write(uploadedFile); } try { //BufferedReader in = new BufferedReader(new FileReader("/"+nome));//objeto para buscar apenas o valor e numero no arquivo BufferedReader in1 = new BufferedReader(new FileReader("C:\\bla\\usuario.txt"));//objeto para buscar a data no arquivo /*laço percorrendo todos as linhas do arquivo, mas retorna somente a informação requisitada, ou seja, a data */ while (in1.ready()){ //processa cada linha do arquivo linha1 = in1.readLine(); if(lineDataBaixa.equals("13")){//testa se eh alinha 13 //busca na linha a data desejada. dataBaixa = linha1; } out.println(linha1); }catch (IOException e) { e.printStackTrace(); } } %>
Preciso da linha 13 do arquivo pois nela existe um campo HASH encriptado cm MD5 que precisa ser validado.
Leonardo Morastoni
Posts
27/07/2010
Leonardo Morastoni
http://img827.imageshack.us/img827/6836/jakartaerror.png
28/07/2010
Dyego Carmo
tanto usando JSF , JPS e Struts2...
acesse:
https://www.devmedia.com.br/autor.asp?id=202707
28/07/2010
Leonardo Morastoni
Clique aqui para fazer login e interagir na Comunidade :)