Проблема при загрузке файла на FTP-сервер с использованием API Commons Net 3.0 (org.apache.commons.net) - PullRequest
0 голосов
/ 21 мая 2011

Я пытаюсь сохранить текстовый файл на FTP-сервере, который находится на моем диске, и на нем есть данные, файл успешно сохранен на нем, но файл полностью пуст, даже если он содержит данные.

моя неудачная попытка.

FTPClient client = new FTPClient();
    FileInputStream fis = null;


    try {
        client.connect("ftp.drivehq.com");
    } catch (SocketException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        client.login("zaheerkth", "mypassword");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    String filename = "c://ss.txt";
    try {
        fis = new FileInputStream(filename);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        client.storeFile(filename, fis);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        client.logout();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    try {
        fis.close();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
  }

Ответы [ 2 ]

2 голосов
/ 22 мая 2011

Возможно, вам потребуется client.enterLocalPassiveMode(), если вы работаете за брандмауэром или NAT.

РЕДАКТИРОВАТЬ: локальный пассив, вероятно, то, что вы хотите.

1 голос
/ 23 марта 2012

Это мой код, пожалуйста, отметьте его здесь. Я хочу сохранить имя файла в базе данных и сохранить файл на ftp-сервере в этом коде. Я могу сохранить файл, в котором нет содержимого, он хранится как пустой файл.

     String email="";    
     int i=0;    

 int count1=0;
     boolean isMultipart = ServletFileUpload.isMultipartContent(request);
     if (!isMultipart) {
      } else {
   FileItemFactory factory = new DiskFileItemFactory();
   ServletFileUpload upload = new ServletFileUpload(factory);
   List items = null;
   try {
   items = upload.parseRequest(request);
   } catch (FileUploadException e) {
   e.printStackTrace();
   }
   Iterator itr = items.iterator();
   while (itr.hasNext()) 
   {
   FileItem item = (FileItem) itr.next();
   if (item.isFormField())
   {
      String name = item.getFieldName();
      String value = item.getString();
      if(name.equals("email"))
           {
           email=value;
                }




     } else
   {
     try {

     String itemName = item.getName();
     itemName = new java.io.File(itemName).getName(); 

     String fname="";
     String ext="";
     int mid= itemName.lastIndexOf(".");
     fname=itemName.substring(0,mid);
     ext=itemName.substring(mid+1,itemName.length()); 

     if(ext.equals("doc") || ext.equals("docx") ||ext.equals("txt")    ||ext.equals("pdf")){  
     count1=1;
     FileInputStream fis = null;


    Class.forName("com.mysql.jdbc.Driver");
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/beehivej_beehivejobs", "root", "root");
                Statement stmt = conn.createStatement();
                String s="SELECT idfile FROM file ORDER BY idfile DESC LIMIT 1";
                ResultSet rs=stmt.executeQuery(s);
                while(rs.next()){i=Integer.parseInt(rs.getString(1));}
                String sql="insert into file (filename,emailid) Values ('"+itemName+"','"+email+"')";
                int in=stmt.executeUpdate(sql);

      FTPClient client = new FTPClient();

      try {

      client.connect("ftp.xyz.com");

      } catch (SocketException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      try {
      client.login("username", "password");


      } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }


      try {
      fis = new FileInputStream(itemName);
      count1=1;
      } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
      e.printStackTrace();
      }
      try {

      String name="Beehive_Resume"+i+"."+ext;
      client.enterLocalPassiveMode();
      client.storeFile(itemName, fis);

     count1=1;
     } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
     }
    try {
    client.enterLocalActiveMode();
    client.logout();
    count1=1;
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    try {
    fis.close();
    count1=1;
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }


    }else
    {
      response.sendRedirect("Account/reg4.jsp?email="+email+"&msg=This is not Supported  File");
    }
    }catch (Exception e) {
    e.printStackTrace();
    count1=1;
    }
    }
    } 
    }
    if(count1==1)
    {
     response.sendRedirect("Account/Home.jsp?email="+email);
    }
...