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 的依赖,你只需要写几行来复制没有 3rd 方库支持的数据:

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

我不相信通常可以指示 Web 服务器将文件直接上传到 FTP 服务器,但是绝对可以编写一个程序自己下载文件然后将其上传到 FTP 服务器。

于 2013-02-28T15:59:57.840 回答