Upload de arquivo

7 respostas
M

Olá pessoal,

No meu sistema, tem uma parte que faz upload de arquivo em um servidor daqui da empresa.
Eu defini o diretorio onde será salvo o arquivo da seguinte forma:

//webserver/www/minhaempresa/arquivos/imagens_casos/

Enquanto eu rodei em meu computador funcionou.
Testei em um servidor windows, também funcionou.

Mas, quando coloquei o sistema no local onde deveria ficar de fato (um servidor linux), o sistema parou de salvar os arquivos…

Alguém sabe me dizer o que devo fazer para resolver esse problema?

Obrigada,
Mariane

7 Respostas

E

Talvez seja o path do arquivo q o linux nao estah encontrando para salvar…lembre-se q ao fazer um upload por default ele salva na raiz do servidor da aplicação. Não etendi pq usar //(duas barras no inicio do diretorio)? Ocorre alguma msg de erro?

E

Mariane,

Você está utilizando qual API para efetuar o upload?

Lembre-se que o separador de arquido muda de windows para linux. Atente bem a essa questão, verifique a API.

Poste o resultado, quando puder =)

Eduardo Amuri

M

verifique se vc tem premissao de escrita no diretorio

R

Ao invés de utilizar a barra ‘/’ para separar os diretorios, tente utilizar File.separator

String path = File.separator + "webserver" + File.separator + "www" + File.separator + "minhaempresa" + File.separator + "arquivos" + File.separator + "imagens_casos" + File.separator
M

Olá pessoal,

Nenhuma das sugestões me ajudou. :frowning:
Será que alguém tem mais alguma idéia?
Segue abaixo a resposta para cada um:

Ebarros: o caminho completo seria /var/www/html/www/local/arquivos/imagens
Eu estava usando // para indicar o nome do computador no windows, mas para o linux não preciso, pois o aplicativo está no mesmo computador onde as imagens serão salvas.

Eduardo: estou utilizando FileUpload, pelo que andei vendo aqui no guj mesmo, se eu utilizar ‘/’, serve tanto para windows quanto para Linux. se está errado, como eu deveria ter feito?

Marlon: Sim, tem permissão.

Renata: Testei o File.separator. Funcionou no Windows, mas para o Linux não funcionou.

Alguém tem outra sugestão?
Fiquei o dia todo buscando, mas não encontrei muita coisa…

Obrigada!
Mariane

G

Já tentou \ ??

E

marianefg:

Ebarros: o caminho completo seria /var/www/html/www/local/arquivos/imagens
Eu estava usando // para indicar o nome do computador no windows, mas para o linux não preciso, pois o aplicativo está no mesmo computador onde as imagens serão salvas.

Obrigada!
Mariane

Olha soh nao sei como estah seu código, mas vc deve fazer algo mais ou menos parecido com isso:

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) {
		                 
		       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 itens do upload
		       
		       upload.setSizeMax(50*1024*1024); //define o tamanho maximo do arquivo para upload 50Mb     
		         
		       /* Processa os itens do upload */  
		       while (iter.hasNext()) {        
		          FileItem item = (FileItem) iter.next();  
		          nome = item.getName(); //obtem o nome do arquivo  
		          StringBuffer bn = new StringBuffer();  
		          bn.append("/var/www/html/www/local/arquivos/imagens"); //define o diretório para gravação do arquivo. Nesse exemplo estou usando a raiz do servidor da minha aplicação  
		          bn.append(nome); //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);  
		         
	               //fecha conexao  
	               in.close();
		       }        
		    }  
		   %>

index.jsp

<form method="POST" action="upload.jsp" enctype="multipart/form-data">  
       <input type="file" name="arquivo">  
       <input type="hidden" name="teste" value="Upar">  
       <input type="submit">  
    </form>

P.S. Acho q estah com algum problema no forum estou colocando as tags [code] e [/code] em torno do meu codigo e mesmo assim nao estah formantando corretamente…estou fazendo algo errado? algum moderador?

Criado 29 de janeiro de 2009
Ultima resposta 4 de fev. de 2009
Respostas 7
Participantes 6