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

可能/是不允许基本目录进行上传操作。当您执行setDirUp()FTP 服务器移动到允许 FTP 传输的默认目录时。尝试/使用一些 GUI FTP 客户端上传一些东西,看看它是否有效。

于 2013-09-21T13:24:21.850 回答