Java-在FTP服务器上存储文件失败
我正在尝试将byteArrayInputStream存储为FTP服务器上的文件。我已经可以连接到服务器并更改工作路径,但是触发将流存储为服务器上的文件的方法总是返回false 我正在使用ApacheFTPClient 谁能给我一个提示我的错误在哪里 代码如下:Java-在FTP服务器上存储文件失败,java,bytearray,ftp-client,Java,Bytearray,Ftp Client,我正在尝试将byteArrayInputStream存储为FTP服务器上的文件。我已经可以连接到服务器并更改工作路径,但是触发将流存储为服务器上的文件的方法总是返回false 我正在使用ApacheFTPClient 谁能给我一个提示我的错误在哪里 代码如下: String filename = "xyz.xml" // connection returns true connectToFtpServer(ftpHost, ftpUser, ftpPassword, e
String filename = "xyz.xml"
// connection returns true
connectToFtpServer(ftpHost, ftpUser, ftpPassword, exportDirectory);
// byteArray is not void
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(byteArray);
try {
// change returns true
result = ftpClient.changeWorkingDirectory(exportDirectory);
// storing the file returns false
result = ftpClient.storeFile(filename, byteArrayInputStream);
byteArrayInputStream.close();
ftpClient.logout();
} catch (...) {
...
} finally {
// disconnect returns true
disconnectFromFtpServer();
}
我不相信这是你的密码。下面是另一个与kodejava非常相似的例子: 包org.kodejava.example.commons.net
import org.apache.commons.net.ftp.FTPClient;
import java.io.FileInputStream;
import java.io.IOException;
public class FileUploadDemo {
public static void main(String[] args) {
FTPClient client = new FTPClient();
FileInputStream fis = null;
try {
client.connect("ftp.domain.com");
client.login("admin", "secret");
//
// Create an InputStream of the file to be uploaded
//
String filename = "Touch.dat";
fis = new FileInputStream(filename);
//
// Store file to server
//
client.storeFile(filename, fis);
client.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null) {
fis.close();
}
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
我同意这是文件权限。目前还没有一种方法可以更改java本身的权限,但还有其他解决方案。请参阅此线程:
嗯,
詹姆斯我不相信这是你的密码。下面是另一个与kodejava非常相似的例子: 包org.kodejava.example.commons.net
import org.apache.commons.net.ftp.FTPClient;
import java.io.FileInputStream;
import java.io.IOException;
public class FileUploadDemo {
public static void main(String[] args) {
FTPClient client = new FTPClient();
FileInputStream fis = null;
try {
client.connect("ftp.domain.com");
client.login("admin", "secret");
//
// Create an InputStream of the file to be uploaded
//
String filename = "Touch.dat";
fis = new FileInputStream(filename);
//
// Store file to server
//
client.storeFile(filename, fis);
client.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null) {
fis.close();
}
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
我同意这是文件权限。目前还没有一种方法可以更改java本身的权限,但还有其他解决方案。请参阅此线程:
嗯,
James这实际上是一个权限问题,因为用户组无效。将用户添加到用户组后,我可以再次存储文件。这实际上是由于用户组无效而导致的权限问题。将我的用户添加到用户组后,我可以再次存储文件。如果您使用相同的用户名和密码手动连接到同一服务器,您可以在该目录中以该名称存储文件吗?啊!我可以手动连接,但不能存储文件。谢谢这是一个权限问题。我认为您正在使用ApacheFTPClient,但您应该在问题中这样说。您有权访问FTP服务器日志吗?您已经勾勒出了异常处理。storeFile()肯定不会引发异常吗?是的,我正在使用Apache FTPClient。我会编辑它如果你用同样的用户名和密码手动连接到同一台服务器,你能在那个目录中存储一个同名文件吗?啊!我可以手动连接,但不能存储文件。谢谢这是一个权限问题。我认为您正在使用ApacheFTPClient,但您应该在问题中这样说。您有权访问FTP服务器日志吗?您已经勾勒出了异常处理。storeFile()肯定不会引发异常吗?是的,我正在使用Apache FTPClient。我会编辑它