正在 Java 中将字节数组上传到 FTP
Uploading byte array to FTP in Java
我的目标是能够将文件上传到FTP服务器,我研究了一下,看到了如果文件已经存储在本地如何上传文件的方法,我有一个功能returns byte[]
所以我想知道如果该文件存在于内存中,如何将该文件发送到 FTP 服务器。
private void connect() throws IOException {
FTPClient ftpClient = new FTPClient();
ftpClient.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
ftpClient.connect(ftp.getServer(), ftp.getPort());
int reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
throw new RuntimeException("Could not connect to FTP Server");
} else {
ftpClient.login(ftp.getUser(), ftp.getPassword());
}
}
您似乎在使用 Apache Commons Net FTPClient
。
它实际上什至没有直接上传物理文件的方法。它的FTPClient.storeFile
method only accepts InputStream
界面。
通常您会使用 FileInputStream
来引用物理文件:
How do you upload a file to an FTP server?
虽然您想使用 ByteArrayInputStream
:
Can we convert a byte array into an InputStream in Java?
InputStream inputStream = new ByteArrayInputStream(bytes);
ftpClient.storeFile(remotePath, inputStream);
我的目标是能够将文件上传到FTP服务器,我研究了一下,看到了如果文件已经存储在本地如何上传文件的方法,我有一个功能returns byte[]
所以我想知道如果该文件存在于内存中,如何将该文件发送到 FTP 服务器。
private void connect() throws IOException {
FTPClient ftpClient = new FTPClient();
ftpClient.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));
ftpClient.connect(ftp.getServer(), ftp.getPort());
int reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
throw new RuntimeException("Could not connect to FTP Server");
} else {
ftpClient.login(ftp.getUser(), ftp.getPassword());
}
}
您似乎在使用 Apache Commons Net FTPClient
。
它实际上什至没有直接上传物理文件的方法。它的FTPClient.storeFile
method only accepts InputStream
界面。
通常您会使用 FileInputStream
来引用物理文件:
How do you upload a file to an FTP server?
虽然您想使用 ByteArrayInputStream
:
Can we convert a byte array into an InputStream in Java?
InputStream inputStream = new ByteArrayInputStream(bytes);
ftpClient.storeFile(remotePath, inputStream);