Upload(me ajudem!)

15 respostas
D

Galera, eu to com um problema eu to fazendo o upload de um arquivo, mas na hora que eu vou salvar ele em um diretorio ele ta dando um erro, pra salvar em um diretorio o arquivo tem que usar barras ao contrario certo?!
\

Bom, ai vai o codigo se alguem conseguir ver algo errado...

<%@ page import="java.io.*" %>
<%
                String savePath = "T:\webapps\pc";(onde esta dando erro!!)
	String filename = "";
	
	ServletInputStream  in = request.getInputStream();
	byte[] line = new byte[128];
	int i = in.readLine(line, 0, 128);
	int boundaryLength = i - 2;
	String boundary = new String(line , 0, boundaryLength);
	
	while(i != -1){
      String newLine = new String (line, 0 , i);
		if(newLine.startsWith("Content-Disposition: form-data; name=\"")){
		  String s = new String(line, 0, i-2);
		  int pos = s.indexOf("filename=\"");
		    if(pos != -1){
		      String filepath = s.substring(pos+10, s.length()-1);
		      pos = filepath.lastIndexOf("\\");
		        if(pos != -1)
		          filename = filepath.substring(pos + 1);
		           	else
		           	  filename = filepath;
		    }
		        
		        i = in.readLine(line, 0, 128);
		        i = in.readLine(line, 0, 128);
		        i = in.readLine(line, 0, 128);
		        
		        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
		        newLine = new String (line, 0 , i);
		        
		          while(i != -1 && !newLine.startsWith(boundary)){
		          buffer.write(line, 0, i);
		          i = in.readLine(line, 0, 128); 
		          newLine = new String(line , 0, i);
		          }
		            try{
		              RandomAccessFile f = new RandomAccessFile(savePath + filename, "rw");
		              byte[] bytes = buffer.toByteArray();
		              f.write(bytes, 0, bytes.length -2);
		              f.close();
		            }
		            catch(Exception e){}
		}
		    i = in.readLine(line, 0, 128);
	}

%>

Obrigado,

Atenciosamente,

Eduardo

15 Respostas

jgbt

cara,
posta o erro que ta dando e em que momento ta acontecendo.

[]'s

D

Cara, ta ai o erro que esta dando!!!

An error occurred at line: 2 in the jsp file: /jsp/FileUpload.jsp
Generated servlet error:
C:\Tomcat\work\Catalina\localhost\pc\org\apache\jsp\jsp\FileUpload_jsp.java:46: illegal escape character
String savePath = “T:\webapps\pc”;
^

An error occurred at line: 2 in the jsp file: /jsp/FileUpload.jsp
Generated servlet error:
C:\Tomcat\work\Catalina\localhost\pc\org\apache\jsp\jsp\FileUpload_jsp.java:46: illegal escape character
String savePath = “T:\webapps\pc”;
^
2 errors

D

Na, verdade as setas estao apontando para o webapps, e para o pc…que sao os diretorios…

danieldestro

Você tem que fazer assim:

String savePath = “T:\webapps\pc”;

ou assim:

String savePath = “T:/webapps/pc”;

jgbt

tenta:

String savePath = "T:\\webapps\\pc";

ou

String savePath = "T:/webapps/pc";

ve se isso resolve.

[]'s

D

Galera, não deu certo nenhum dos dois caminhos…

Agora eu não to entendendo o que acontece…

Será que tem algum erro na codificação?!

Se puderem dar um olhada e ver se acham algum erro…

valeu galera,

Atenciosamente,

Eduardo

danieldestro

Não deu outro erro não?

D

Ele nem deu erro!!
Ele só não gravou no diretorio!!
Tem mais alguma modifica~ção que eu poderia fazer?!

Obrigado galera,

Atenciosamente,

danieldestro

Porque você não usa o Apache File Upload?

Rafael_Steil

Mas pq vc esta lidando com a manipulacao multipart no braco? O comons-fileupload (http://jakarta.apache.org/commons/fileupload) lida com isso muito bem, alem de ser facil de usar.

Rafael

D

Desculpe, se estou meio que enchendo o saco de voces…uahuah
, mas eh que eu comecei com Java mesmo faz duas, tres semanas e ta meio embassado aqui!!!

Entao, tipow quando eu baixar o FileUpload ele vai ficar aonde exatamente!?

quando eu baixar eu tenho que salvar ele em alguma pasta especifica?!

Valeu galera,
e foi mal pelo incomodo!!

Atenciosamente,

danieldestro

Bom, na própria página do file upload tem as instruções, mas basicamente você disponibiliza os JARs no seu classpath (ou diretório classes do WEB-INF se for uma app web).

D

Galera, eu fiz o download do fileupload , descompactei e salvei o arquivo na pasta Lib…

Alguem poderia postar algum codigo usando o fileupload para eu ter uma ideia de como fazer?!

Obrigado,

Atenciosamente,

Eduardo

danieldestro

Na verdade você tem que colocar no seu lib (classpath) os JARs que vêm dentro do zip do FileUpload, não o próprio ZIP.

Para exemplos, este é o guia do usuário:
http://jakarta.apache.org/commons/fileupload/using.html

bebad

mas
por exemplo eu pego no get o arquivo, porem o IE me da a rota inteira do arquivo que veio para upload.

String teste2 = (""+C:\Java\workspace\poixls\21-05\PoiJava\src\java\com\cyber\Read_.xls+"");

String valor = /;

String [] y = teste2.split(valor);

re retorna o mesmo erro do companheiro…

como eu faria para fazer o programa remover a barra que eu quero ???

Criado 22 de fevereiro de 2005
Ultima resposta 23 de mai. de 2007
Respostas 15
Participantes 5