2012-03-01 14 views
2

私のマシンにローカルにExcelファイルがほとんどありません。このExcelファイルをftpにアップロードしたいと思います。私は、FTPClinetのapacheコモンズを使用しています。しかし、ファイルをアップロードすると、ファイルが破損して、ファイルのサイズがゼロになります。ここにサンプルプログラムですapache commons ftpクライアントファイルアップロードの問題

誰かが私に間違っていると指摘できますか?

public class App { 
    private static final String server = "localhost"; 
    private static final String username = "test"; 
    private static final String password = "test"; 
    private static final String directory = "/home/files"; 

    public static void main(String[] args) throws SocketException, IOException { 
     FTPClient f = new FTPClient(); 
     f.connect(server); 
     f.login(username, password); 
     f.setFileType(FTPClient.BINARY_FILE_TYPE); 
     InputStream is = null; 

     is = new FileInputStream("c:\\tmp\\output.xls"); 
     Boolean isStored = f.storeFile("status.xls", is); 
     is.close(); 
    } 
} 
+0

FileInputStreamから、唯一の問題は、ファイルが破損しているされ、データが – user509755

+0

あなたは、あなたのエラーをしてください投稿できます書かれていないのですか? – alexvetter

+0

'/ home/files/status.txt'はFTPサーバーのディレクトリ構造のコンテキストで有効ですか?これはサーバーのfilestoreルートの下では有効ではない絶対パスのように見えます。 –

答えて

0

f.setFileType(FTPClient.BINARY_FILE_TYPE);この行を削除してください。

Excelファイルはバイナリではありません。asciiとして転送する必要があります。これは、ApacheのFTPClientのデフォルトの設定です。

私はこれをテストしていません。試してみる。また

変更は、私はすべてのエラーメッセージを取得していないですInputStream

+0

No Success my friend。今回は私は読めない内容を見ていませんでしたが、まだコピーしたファイルに完全なデータがあります。 – user509755

+0

あなたのコードでは、サーバ名がlocalhostではないことを確認しています。 – roymustang86

+0

とそれをアップロードしようとしているLinuxサーバの場合、フォルダに十分な特権(777) – roymustang86

関連する問題