2016-12-15 6 views
0

Я пытаюсь загрузить файл на FTP-серверJava: загрузить файл на FTP-сервер

Как я нашел здесь How do you upload a file to an FTP server?, у меня есть этот код:

FTPClient client = new FTPClient(); 
FileInputStream fis = null; 

try { 
    client.connect("IP"); 
    client.login("user", "pwd"); 
    client.changeWorkingDirectory("https://stackoverflow.com/a/b/c/"); 

    // Create an InputStream of the file to be uploaded 
    String filePath = file.getPath(); 
    fis = new FileInputStream(filePath); 
    String fileName = file.getName();        

    // Store file to server 
    client.storeFile(fileName, fis); 
    client.logout(); 

} catch (Exception e) { 
    e.printStackTrace(); 
} finally { 
    try { 
    if (fis != null) { 
     fis.close(); 
    } 
    client.disconnect(); 
    } catch (Exception e) { 
    e.printStackTrace(); 
    } 
} 

Когда я бегу это, файл создается там, где ожидалось, но он пуст (0 кб)

процесс написания также занимает довольно много времени ...

что я делаю неправильно?

+0

Найти, если этот фрагмент кода хорош: String filePath = file.getPath(); fis = new FileInputStream (filePath); как вы создаете объект? Это может быть медленным, потому что ваше интернет-соединение работает медленно или ваш ftp-сервер медленный ... может быть – thepaulo

+0

Любая ошибка/исключение? –

+0

Можете ли вы загрузить один и тот же файл на тот же сервер и каталог с помощью автономного FTP-клиента? –

ответ

-1

Посмотрите на это сообщение Apache Commons FTP problems Вам необходимо установить тип файла и режим tranfor, чтобы эта работа работала.

+0

Что заставляет вас думать, что неправильный режим передачи может привести к тому, что загруженный файл будет пустым? –

+0

Я добавил тип файла (BINARY_FILE_TYPE) и режим trasfer (STREAM_TRANSFER_MODE), но проблема остается – Maik