正在 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);