我使用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这样的客户端将文件上传到基础目录而没有任何问题。
答案 0 :(得分:0)
可能是基础目录/
不允许上传操作。当您执行setDirUp()
FTP服务器移动回到允许FTP传输的默认目录时。尝试使用某个GUI FTP客户端将某些内容上传到/
,看看它是否有效。