Jscape SFTP / FTP上传到根目录失败

时间:2013-09-21 12:46:55

标签: java upload ftp sftp

我使用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'),所有情况都会成功。即一个不在基地的dir。

我不明白如何从'/' - >>做一个setDirUp ''允许您将文件上传到基目录。从'/'执行UP时会发生什么。什么是'?

如何上传到'/'适用于某些FTP站点。

BTW两个FTP站点都允许我使用像WinSCP这样的客户端将文件上传到基础目录而没有任何问题。

1 个答案:

答案 0 :(得分:0)

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