Java:将文件从URL直接上传到带有库的FTP服务器

时间:2013-02-28 15:57:18

标签: java url upload ftp java-7

可以将文件从URL(http:// ... .exe / .zip ...)直接传输到Java 7中的ftp服务器(带有一些额外的库,例如来自Apache?

2 个答案:

答案 0 :(得分:1)

通过标准API类java.net.URL支持HTTP和至少有限的FTP支持。您只能限制访问特定的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);
}

答案 1 :(得分:0)

我不相信一般可以指示Web服务器将文件直接上传到FTP服务器,但是编写程序可以自行下载文件,然后将其上传到FTP服务器。 / p>