Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用java将文件从一个远程位置传输到另一个远程位置?_Java_Ftp_File Transfer_Remote Server_Webdav - Fatal编程技术网

如何使用java将文件从一个远程位置传输到另一个远程位置?

如何使用java将文件从一个远程位置传输到另一个远程位置?,java,ftp,file-transfer,remote-server,webdav,Java,Ftp,File Transfer,Remote Server,Webdav,我想编写java程序,将文件直接下载到远程服务器,而不是在本地机器上下载 远程服务器是FTP/WebDAV 所以,java中是否有任何库可以直接将文件下载到远程ftp/WebDAV服务器,而不是将其保存到本地计算机并上载 请引导正确的方向您的问题太广泛,但我建议您采取以下步骤: 1) 使用将文件下载到您的系统中 2) 获取下载的文件,并使用以下方法将其发送到您有权访问的web服务器: FTPClient client = new FTPClient(); try { client.connect

我想编写java程序,将文件直接下载到远程服务器,而不是在本地机器上下载

远程服务器是FTP/WebDAV

所以,java中是否有任何库可以直接将文件下载到远程ftp/WebDAV服务器,而不是将其保存到本地计算机并上载


请引导正确的方向

您的问题太广泛,但我建议您采取以下步骤:

1) 使用将文件下载到您的系统中

2) 获取下载的文件,并使用以下方法将其发送到您有权访问的web服务器:

FTPClient client = new FTPClient();
try {
client.connect("ftp.domain.com");
client.login("username", "pass");
FileInputStream fileInputStream = new FileInputStream("path_of_the_downloaded_file");
client.storeFile(filename, fileInputStream );
client.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
    if (fileInputStream != null) {
        fileInputStream .close();
    }
    client.disconnect();
} catch (IOException e) {
    e.printStackTrace();
}
}
===========================================编辑=================================


回复评论:“但我不想在本地存储文件,甚至不想临时存储”

然后,您只需要将其存储在字节数组中,并将字节数组转换为InputStream,然后将存储文件发送到服务器

    FTPClient client = new FTPClient();
    BufferedInputStream in = new BufferedInputStream(new URL("www.example.com/file.pdf").openStream());
    byte[] bytes = IOUtils.toByteArray(in);
    InputStream stream = new ByteArrayInputStream(bytes);
    client.connect("ftp.domain.com");
    client.login("username", "pass");
    client.storeFile("fileName", stream);
    stream.close();

这个太宽了。有几种方法可以做到这一点。选择一个取决于您所处环境的多种情况。请详细解释您的环境,重要的是,向我们展示您的尝试,以及您失败的地方。同意@SeelenVirtuse。这种方式涉及面广,在细节上严重缺乏。请更详细地描述您面临的问题,然后尝试寻求帮助。但我不想将文件存储在本地,甚至不想temporarily@sr196如你所见,我编辑了我的答案以适合你的情况