2011-05-19 23 views
7

Utilizo las bibliotecas FTPClient y FTPServer de Apache en mi proyecto Java. El servidor y el cliente están en la misma máquina.Error de carga de archivos FTP Java

Mi FTPServer se supone que es un servidor local, nada relacionado con Internet. Puedo conectarme al FTPServer desde el cliente (obtengo 230 como código de respuesta) pero no puedo hacer nada. No puedo almacenar ni recuperar ningún archivo.

He leído casi todas las preguntas relacionadas con este asunto, pero las personas que hicieron otras preguntas fueron capaces de enviar archivos simples y tuvieron problemas para enviar archivos como PDF, etc. Solo necesito enviar o recuperar archivos de texto.

¿Alguna sugerencia?

 FTPClient client = new FTPClient(); 
     String host = "mypc"; 
     String Name = "user"; 
     String Pass = "12345"; 

     client.connect(host); 
     client.login(Name,Pass); 
     System.out.println("Reply Code: " +client.getReplyCode()); 


    File file = new File("C:\\.....myfile..txt"); 

     FileInputStream in = new FileInputStream("C:\\.....myfile..txt"); 
     boolean isStored = client.storeFile("uploadedfile.txt", in); 
     in.close(); 
     client.logout(); 
     System.out.println("isStored: " +isStored); 

I didnt poner los nombres de las rutas reales. Devuelve falso, sin excepciones, etc. ¿Esto podría deberse a que están en la misma máquina?

Editar: Resultó que necesitaba permiso de escritura para enviar un archivo a ftpserver. De forma predeterminada, no otorga permiso de escritura a los usuarios. ¿Cómo puedo otorgar permisos de escritura a los usuarios usando la biblioteca ftpserver de Apache?

+0

¿por qué no? excepciones, no pasa nada? ¿Cuál es tu código? – Bozho

+3

Puede ser que usted no tenga permisos. Cuéntanos más, tenemos curiosidad :) –

+0

Si no obtienes nada del código del cliente, ¿por qué no haces un registro en el servidor y ves lo que se está registrando? – Jasoon

Respuesta

5

Problema resuelto: Así es como dar permiso de escritura al usuario. Agregué este fragmento al lado del servidor y funcionó.

List<Authority> auths = new ArrayList<Authority>(); 

Authority auth = new WritePermission(); 

auths.add(auth); 

user.setAuthorities(auths); 

Hay Authority término escrito en este símbolo ->< > después List y ArrayList en la primera línea. El sitio no ve palabras en el símbolo <>.