SetFileTransferMode FTPClient не вступает в силу - PullRequest
3 голосов
/ 10 февраля 2012

Следующий код предназначен для того, чтобы взять файл (любой файл был бы хорош, но сейчас я все равно использую изображения) и загрузить его на мой сервер (что работает, бла-бла-бла). Единственная проблема заключается в том, что после передачи изображение сильно искажается. Основным предложением является использование setFileTranferMode у FTPClient для FTPClient.BINARY_FILE_TYPE, что ... на данный момент не имеет никакого эффекта ...

Вот код для метода:

public void sendFile(File sendMe) throws IOException{
    f.connect(ip);
    f.login(username, password);

    String recipient=null;
    while(!f.changeWorkingDirectory(path+recipient)){
        recipient=JOptionPane.showInputDialog("What is the name of the computer you are sending this to?");
    }

    f.changeWorkingDirectory(path+recipient);
    f.setFileTransferMode(FTPClient.BINARY_FILE_TYPE);
    f.storeFile(sendMe.getName(), new BufferedInputStream(new FileInputStream(sendMe)));
    System.out.println("Stored!");

    f.disconnect();
    System.out.println("Uploaded");
}

Как всегда, любая помощь будет высоко ценится! Спасибо!

Ответы [ 2 ]

5 голосов
/ 10 февраля 2012

Вы не используете правильный метод для установки типа файла. Вместо этого следует использовать setFileType .

f.setFileType(FTPClient.BINARY_FILE_TYPE);
0 голосов
/ 10 февраля 2012

Вместо того чтобы полагаться на сторонние FTP-клиенты, почему бы вам не создать свой собственный в VB.NET или C #. Таким образом, вы будете иметь больше контроля, если что-то пойдет не так. Вот код для этого:

http://dot -net-talk.blogspot.com / 2008/12 / как к создать FTP-клиент--в-vbnet.html

...