2013-02-12 20 views
12

जावा में एसएफटीपी के माध्यम से फ़ाइल को कैसे स्थानांतरित करें? मैं एसएफटीपी क्लाइंट के लिए नमूना कोड चाहता हूँ। मैं अपने आवेदन में एसएफटीपी सर्वर को एम्बेड करना चाहता हूं और क्लाइंट को मेरे आवेदन में एक फाइल भेजने में सक्षम होना चाहिए।जावा में एसएफटीपी के माध्यम से फ़ाइल को कैसे स्थानांतरित करें?

पीएस: यह एसएफटीपी क्लाइंट के लिए पूछा गया था। और यह प्रश्न अन्य दो प्रश्नों का डुप्लिकेट नहीं है।

उत्तर

46

इस कोड को आज़माएं।

public void send (String fileName) { 
     String SFTPHOST = "host:IP"; 
     int SFTPPORT = 22; 
     String SFTPUSER = "username"; 
     String SFTPPASS = "password"; 
     String SFTPWORKINGDIR = "file/to/transfer"; 

     Session session = null; 
     Channel channel = null; 
     ChannelSftp channelSftp = null; 
     System.out.println("preparing the host information for sftp."); 
     try { 
      JSch jsch = new JSch(); 
      session = jsch.getSession(SFTPUSER, SFTPHOST, SFTPPORT); 
      session.setPassword(SFTPPASS); 
      java.util.Properties config = new java.util.Properties(); 
      config.put("StrictHostKeyChecking", "no"); 
      session.setConfig(config); 
      session.connect(); 
      System.out.println("Host connected."); 
      channel = session.openChannel("sftp"); 
      channel.connect(); 
      System.out.println("sftp channel opened and connected."); 
      channelSftp = (ChannelSftp) channel; 
      channelSftp.cd(SFTPWORKINGDIR); 
      File f = new File(fileName); 
      channelSftp.put(new FileInputStream(f), f.getName()); 
      log.info("File transfered successfully to host."); 
     } catch (Exception ex) { 
      System.out.println("Exception found while tranfer the response."); 
     } 
     finally{ 

      channelSftp.exit(); 
      System.out.println("sftp Channel exited."); 
      channel.disconnect(); 
      System.out.println("Channel disconnected."); 
      session.disconnect(); 
      System.out.println("Host Session disconnected."); 
     } 
    } 
+0

मेरी गंतव्य निर्देशिका को सुडो अनुमति की आवश्यकता है किसी भी विचार से मैं यह कैसे कर सकता हूं? @Dinakar – Ajak6

+0

क्या होगा अगर मुझे कामकाजी निर्देशिका नहीं पता। मुझे सिर्फ फाइल पथ पता है? सीडी कमांड को कैसे संभालें? –

+0

@ Ajak6 क्या आपको सूडो अनुमतियों के लिए समाधान मिला? – Dish

संबंधित मुद्दे