मेरा लक्ष्य एफ़टीपी सर्वर पर फ़ाइलों को अपलोड करने में सक्षम होना है, मैंने थोड़ा शोध किया है और फ़ाइल को पहले से ही स्थानीय रूप से संग्रहीत होने पर फ़ाइल अपलोड करने का तरीका देखा है, मेरे पास एक फ़ंक्शन है जो 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());
    }
}
1
letMeThink 15 अप्रैल 2020, 17:42

1 उत्तर

सबसे बढ़िया उत्तर

ऐसा लगता है कि आप Apache Commons Net FTPClient.

वास्तव में इसके पास भौतिक फ़ाइल अपलोड करने का सीधा तरीका भी नहीं है। इसका FTPClient.storeFile विधि केवल InputStream इंटरफ़ेस।

आम तौर पर आप किसी भौतिक फ़ाइल को संदर्भित करने के लिए FileInputStream का उपयोग करेंगे:
आप किसी फ़ाइल को FTP सर्वर पर कैसे अपलोड करते हैं?

जब आप ByteArrayInputStream का उपयोग करना चाहते हैं:
क्या हम जावा में एक बाइट सरणी को एक इनपुटस्ट्रीम में बदल सकते हैं?

InputStream is = new ByteArrayInputStream(bytes);
ftpClient.storeFile(remotePath, is);
1
Martin Prikryl 17 अगस्त 2020, 07:09