Duvida No File

10 respostas
J

Galera como eu faço para diminuir o tamanho do caminho escrito dentro do File?? tipo eu to fazendo assim mas vaum mudar o servidor dai n sei o caminho certo!!to fazendo assim:

fichero = new File("C:\\Documents and Settings\\julpac\\workspace\\Impressora\\WebContent\\admin\\arquivo_csv\\" + fichero.getName());

sem ter de escrever todo o caminho, como ficaria???

tipo

fichero = new File("..\\arquivo_csv\\" + fichero.getName());

???

tipo tentei como ali em cima mas n deu certo!!!
[size=“11”][color=“red”]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia:

10 Respostas

J

Você já tinha perguntado isso no outro post e já está respondido lá, masss....

String pasta = getServletContext().getRealPath("/admin/arquivo_cv");

fichero = new File(pasta+File.separator+fichero.getName());
J

cara olha so ateh deu certo so q aparece este aviso aki ohhh

O numero de Arquivos é: 3
Arquivo C:\Documents and Settings\julpac\Desktop\impressoras.csv
O nome do Arquivo é impressoras.csv
Arquivo criado com sucesso
Upload Realizado
Arquivo null null

J

deu certo sabe so q tipo apareceu akele arquivo null null??? q e akilo???

J

Ué, você está mandando imprimir isso aí, vê se os valores impressos é o que você esperava mesmo!

J

cara olha so com este mapeamento n sei pq mas n esta funcionando!! tipo ele da esta msg :

O numero de Arquivos é: 2 Arquivo C:\Documents and Settings\julpac\Desktop\impressoras.csv O nome do Arquivo é impressoras.csv Upload Realizado Arquivo null null

da uma olhada denovo veio!!

while (i.hasNext())
     	{
     		actual = (FileItem)i.next();
        	String fileName = actual.getName();
        	out.println("<br>Arquivo " + fileName);	
 		
 			// determinando o local do ficheiro
        	File arquivo = new File(fileName);
        	out.println("<br>O nome do Arquivo é " + arquivo.getName());
			//arquivo = new  File("C:\\Documents and Settings\\julpac\\workspace\\Impressora\\WebContent\\admin\\arquivo_csv\\" + arquivo.getName());
			String pasta = getServletContext().getRealPath("/admin/arquivo_csv");
			arquivo = new File(pasta + File.separator + arquivo.getName());
			if(!arquivo.exists()){
				arquivo.createNewFile();
				out.println("<br>Arquivo criado com sucesso");
			}
			actual.write(arquivo);
			out.println("<br><font color='blue'>Upload Realizado</font>");
		}
	} catch(Exception e) {
		out.println(e.getMessage());
	}
}
%>
</body>
</html>

e tipo onde q eu mando ele escrever o null null?? ne e na ecessão??

e olha so as "/" do getRealPath saum dakele geito mesmo????
[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia:

J

Deve ter mais algum lugar onde você manda imprimir isso!

J

Ahh, e não use JSP para colocar regra de negocio, não foi feito pra isso!

J

é eu sei q n e bom se usar isso e sim os as classes mas n sei trabalhar miuto bem com beans!!! e tipo to com o prazo esgotado era pra ter entregue ontem!!

bom olha so

o jsp ta aki!!
<%@page language="java" import="java.io.*, org.apache.commons.fileupload.*, java.util.*" %>
<html>
<head>
<title>UPLOAD</title>
</head>
<body>
<%
boolean isMultipart = FileUpload.isMultipartContent(request);
//if(FileUpload.isMultipartContent(request)){
	DiskFileUpload fu = new DiskFileUpload();
	 fu.setSizeMax(1024*512); // 512 K
	try
	{
	 
		fu.setSizeThreshold(4096);
	 	fu.setRepositoryPath("/tmp");
	 	List fileItems = fu.parseRequest(request);
	 
	 	if(fileItems == null)
     	{
	        out.println("A lista é nula!!");
            
    	 }            
     	out.print("<br>O numero de Arquivos é: " +  fileItems.size());
	 	Iterator i = fileItems.iterator();
	 	FileItem actual = null;
     	     
     	while (i.hasNext())
     	{
     		actual = (FileItem)i.next();
        	String fileName = actual.getName();
        	out.println("<br>Arquivo " + fileName);	
 		
 			// determinando o local do ficheiro
        	File arquivo = new File(fileName);
        	out.println("<br>O nome do Arquivo é " + arquivo.getName());
			arquivo = new  File("C:\\Documents and Settings\\julpac\\workspace\\Impressora\\WebContent\\admin\\arquivo_csv\\" + arquivo.getName());
			//String pasta = getServletContext().getRealPath("/admin/arquivo_csv");
			//arquivo = new File(pasta + File.separator + arquivo.getName());
			if(!arquivo.exists()){
				arquivo.createNewFile();
				out.println("<br>Arquivo criado com sucesso");
			}
			actual.write(arquivo);
			out.println("<br><font color='blue'>Upload Realizado</font>");
		}
	} catch(Exception e) {
		out.println(e.getMessage());
	}
//}
%>
</body>
</html>
n vejo onde ele manda escrever!!!! e tipo as barras n estaum viradas???pq do metodo akele q vc passo ele n faz o upload!!!! [size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia:
J

cara desculpa tantas perguntas e tbn por eue star usando dois posts tbn,mas e q estou sob muita pressao!!! tipo

e para o cara fazer o upload e logo em seguida ja fazer o insert no banco tentei da maneira abaixo mas n funcionou ele so fez o upload mas n inseriu nada!!!!

<%@page language="java" import="java.io.*, org.apache.commons.fileupload.*, java.util.*" %>
<%@include file="../conecta/acesso.jsp"%>

<html>
<head>
<title>UPLOAD</title>
</head>
<body>
<%
//boolean isMultipart = FileUpload.isMultipartContent(request);
if(FileUpload.isMultipartContent(request)){
	DiskFileUpload fu = new DiskFileUpload();
	 fu.setSizeMax(1024*512); // 512 K
	try
	{
	 
		fu.setSizeThreshold(4096);
	 	fu.setRepositoryPath("/tmp");
	 	List fileItems = fu.parseRequest(request);
	 
	 	if(fileItems == null)
     	{
	        out.println("A lista é nula!!");
            
    	 }            
     	out.print("<br>O numero de Arquivos é: " +  fileItems.size());
	 	Iterator i = fileItems.iterator();
	 	FileItem actual = null;
     	     
     	while (i.hasNext())
     	{
     		actual = (FileItem)i.next();
        	String fileName = actual.getName();
        	//out.println("<br>Arquivo " + fileName);	
 		
 			// determinando o local do ficheiro
        	File arquivo = new File(fileName);
        	//out.println("<br>O nome do Arquivo é " + arquivo.getName());
			arquivo = new  File("C:\\Documents and Settings\\julpac\\workspace\\Impressora\\WebContent\\admin\\arquivo_csv\\" + arquivo.getName());
			//String pasta = getServletContext().getRealPath("/arquivo_csv/");
			//arquivo = new File(pasta + File.separator + arquivo.getName());
			if(!arquivo.exists()){
				arquivo.createNewFile();
				out.println("<br>Arquivo criado com sucesso");
			}
			actual.write(arquivo);
			out.println("<br><font color='blue'>Upload Realizado</font>");
			
			//insercao no banco!!
			File arq = new File("C:\\Documents and Settings\\julpac\\workspace\\Impressora\\WebContent\\admin\\arquivo_csv\\");
			BufferedReader br = new BufferedReader(new FileReader(arq));
			PreparedStatement  stmt= con.prepareStatement("INSERT INTO custos(cc_custo, impressoes, valImpress, copias, valCopias, mes) values (?, ?, ?, ?, ?, ?)");
			while(br.ready()){
				String linha = br.readLine();
				String[] dados = linha.split(";");
				for(int j = 0; j < dados.length; j++){
					stmt.setString(j+1, dados[j]);				
				}
				stmt.executeUpdate();
			}
			
		}
	} catch(Exception e) {
		//out.println(e.getMessage());
	}
}
%>
<java
</body>
</html>

por favor agora so falta isso veio!!
[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos - Ratinho[/color][/size] :joia:

J

cara assim consegui veio!!! deu certo aki!! ele faz o upload e ja insere no banco tudo corretamente!!! meu valew mesmo tu foi de muita ajuda nesta parte certamente q eu n conseguiria isso se vc n tivesse me ajudado!!! valew mesmo
e a correção ali de cima fica assim o cara so precisa setar o nome do arquivo qndo instancia o FileReader fica assim:

so oq ainda falta e ver pq qndo se chama a String pasta
ela n funciona pq vc concatena pasta + File.separator pq da utilização doi File.separator ???
eu tentei so com pasta mas igual ele n axa o caminho e n acusa q se perde tbn!! isso e bem engraçado e so como se ele n fizesse o upload!!!
mas valew veio!!! vou ficar tentando aki!!!
mas se souber o q houve no mapeamento la em avise!!
Ok e um abraço!!

Criado 27 de junho de 2006
Ultima resposta 27 de jun. de 2006
Respostas 10
Participantes 2