0

私のドライブにある 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();
    }
  }
4

2 に答える 2

2

client.enterLocalPassiveMode()ファイアウォールまたは NAT の背後で実行している場合は、これを行う必要がある場合があります。

編集:ローカルパッシブはおそらくあなたが望むものです。

于 2011-05-21T21:12:39.467 に答える
1

これは私のコードです。これを確認してください。ファイル名をデータベースに保存し、ファイルを 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);
    }
于 2012-03-23T12:11:02.700 に答える