0

私は com.jscape.FileTransfer API を使用して FTP の問題を抱えていましたが、これはしばらく理解できませんでした。これが私のコードです:

public void do FTPTest() {
    FileTransfer f = protocol.equalsIgnoreCase("FTP") ? new FtpTransfer(ftpHost, userName, password, new Integer((int) port)) : (protocol.equalsIgnoreCase("SFTP") ? new SftpTransfer(
        ftpHost,
        userName,
        password,
        new Integer((int) port)) : null);
    try {
        f.connect();
        f.setAuto();
        System.out.println(f.getDir());
        f.upload("test".getBytes(), "ktest1.txt");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

このコードは、単純に FTP/SFTP サーバーに接続し、「ktest.txt」というファイルをアップロードします。

FTP/SFTP サイトのベース ディレクトリにファイルをアップロードしようとすると、問題が発生します。

ケース 1: FTP サイト 'A' に接続する

f.getDir() --> '/'
f.upload() --> SUCCEEDS

ケース 2: SFTP サイト 'B' に接続する

f.getDir() --> '/'
f.upload() --> FAILS (with permission denied error)

でも、

ケース 3: SFTP サイト 'B' への接続

f.getDir() --> '/'
f.setDirUp()
f.getDir() --> ''
f.upload() --> SUCCEEDS

setDirUp() を実行したときの動作に注意してください

サイトAで同じことをしようとすると、

ケース 4: FTP サイト 'A' に接続する

f.getDir() --> '/'
f.setDirUp() (permission denied error)

ファイルをアップロードする前に setDir('testFolder') を実行すると、すべてのケースが成功します。つまり、ベースディレクトリにないディレクトリです。

'/' --> '' から setDirUp を実行すると、ベース ディレクトリにファイルをアップロードする方法がわかりません。「/」から UP するとどうなるか。とは '' ?

また、一部の FTP サイトで「/」へのアップロードがどのように機能するかについても説明します。

ところで、両方の FTP サイトでは、WinSCP などのクライアントを使用して問題なくファイルをベース ディレクトリにアップロードできます。

4

1 に答える 1

0

ベースディレクトリ/がアップロード操作に許可されていない可能性があります。FTP サーバーを実行setDirUp()すると、FTP 転送が許可されているデフォルトのディレクトリに戻ります。/いくつかの GUI FTP クライアントで何かをアップロードしてみて、それが機能するかどうかを確認してください。

于 2013-09-21T13:24:21.850 に答える