1

ファイルをURL(http:// ... .exe / .zip ...)からJava 7のftpサーバーに直接転送することができます(Apacheなどの追加のライブラリを使用しますか?

4

2 に答える 2

1

標準のAPIクラスを介して、HTTPと少なくとも制限付きのFTPサポートの両方がサポートされていますjava.net.URL。転送モードの設定など、特定のFTP機能へのアクセスを制限しているだけですが、ほとんどの場合は機能します。

Apache Commons IOを追加すると、IOUtilsクラスを使用してHTTPサーバーからFTPサーバーに直接コピーできます。

InputStream in = new URL("http://host/path").openStream();
OutputStream out = 
    new URL("ftp://user:pass@host/path").openConnection().getOutputStream();

IOUtils.copy(in, out);

in.close();
out.close();        

Commons IOへの依存関係を追加したくない場合は、サードパーティのライブラリをサポートせずにデータをコピーするために数行を書き込む必要があります。

byte[] buffer = new byte[16384];
int r = 0;
while ((r=in.read(buffer))>=0) {
    out.write(buffer, 0, r);
}
于 2013-02-28T16:52:55.520 に答える
0

一般に、ファイルをFTPサーバーに直接アップロードするようにWebサーバーに指示することはできないと思いますが、ファイルを自分でダウンロードしてFTPサーバーにアップロードするプログラムを作成することは間違いなく可能です。

于 2013-02-28T15:59:57.840 に答える