从国家地球系统科学数据中心下载数据,已经申请到了,获得了下载链接,但是下载了filezilla并根据教程解析地址填写配置后显示“20秒后无活动,连接超时”“无法连接到服务器”,看了其他问答,把传输设置改成主动,关了防火墙,都依旧没用
可以去问一下csdn的机器人呢
你看看能否ping通域名,ping不通就检查你的防火墙。
要么就问问对方
端口号是什么,为什么不写
首先通过浏览器访问确认你的ftp的确可以正常访问
然后再去使用ftp工具进行设置是否可以正常访问
能ping通吗
提示得很清楚啊,用FTP客户端下,不要用浏览器下。
FlashFXP就还不错。
windows和MAC自带的资源管理器也可以的,当然功能不如专门的FTP客户端强
降低TLS版本试试
排除交换机问题,那就是网线问题。
可能用ASCii模式传送了非文本文件。在Client端把传输类型改成自动。
这里把server加进去
再连不上就是client里ip填错了
用FTP客户端下,不要用浏览器下
配置下tls证书
端口配上:22试一试
确保已经正确复制并粘贴了下载链接到FileZilla的下载地址栏中,可以尝试手动输入链接地址进行测试。
尝试使用其他FTP客户端下载,例如WinSCP或者Cyberduck。
用cmd工具ping一下,看通不通
网络不同
java从FTP(FileZilla Server)下载文件
通过浏览器形式下载文件
/**
* 功能描述: 通过浏览器的方式下载ftp文件
* @Param: [url, port, username, password, ftpFilePath, fileName, response]
* 文件host地址,端口,用户名,密码,ftp虚拟路径,文件名称(包含后缀)
* @Return: void
*/
public static void downloadFile(String url,int port,String username,String password,String ftpFilePath, String fileName, HttpServletResponse response) {
FTPClient ftpClient = new FTPClient();
//设置传输命令的超时
ftpClient.setDefaultTimeout(20000);//毫秒
//设置两个服务连接超时时间
ftpClient.setConnectTimeout(10000);//毫秒
//被动模式下设置数据传输的超时时间
ftpClient.setDataTimeout(15000);//毫秒
//被动模式
ftpClient.enterLocalPassiveMode();
InputStream input = null;
OutputStream out = null;
try {
//连接FTP
ftpClient.connect(url, port);
//更加账户密码登录服务
ftpClient.login(username, password);
response.reset();
//此处你就根据你要下载的类型去设置即可,比如我下载.avi格式的文件,可以设置response.setContentType("video/avi");
response.setContentType("application/download");
//解决中文不能生成文件
response.setHeader("Content-Disposition", "attachment; fileName=" + URLEncoder.encode(fileName,"UTF-8"));
response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
ftpClient.setControlEncoding("utf-8");
//传输模式
ftpClient.setFileTransferMode(FTP.STREAM_TRANSFER_MODE);
// 设置以二进制流的方式传输
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
//进入目录
ftpClient.changeWorkingDirectory(ftpFilePath);
FTPFile[] files = ftpClient.listFiles();
if (files.length < 1) {
log.error("目录为空");
}
boolean fileExist = false;
for (FTPFile ftpFile : files) {
String ftpFileName=new String(ftpFile.getName());
if (fileName.equals(ftpFileName)) {
fileExist = true;
input = ftpClient.retrieveFileStream(new String(fileName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1));
out = response.getOutputStream();
int len;
byte[] bytes = new byte[1024];
while ((len = input.read(bytes)) != -1) {
out.write(bytes, 0, len);
}
out.flush();
break;
}
}
if (!fileExist) {
log.error("FTP服务器上文件不存在");
}
} catch (IOException e) {
e.printStackTrace();
log.error("下载文件异常");
} finally {
try {
if (out != null) {
out.close();
}
if (input != null) {
input.close();
}
} catch (IOException e) {
e.printStackTrace();
}
try {
if (ftpClient != null && ftpClient.isConnected()) {
ftpClient.disconnect();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
这个问题可能是由于您的FileZilla连接设置不正确导致的。以下是一些可能的解决方案:
1.检查您的网络连接是否正常,确保您可以访问服务器。
2.检查您的FTP服务器地址、端口号、用户名和密码是否正确。
3.在FileZilla工具栏点击编辑——>设置将超时秒数(O)的数值设置的大一点(默认是20),例如33秒 。
4.如果以上方法都不行,可以尝试关闭防火墙或者使用其他FTP客户端软件
首先,检查下ftp服务的主动/被动模式的设置(Passive Mode ),还有防火墙的设置,网络。
然后:
如果你想使用 FileZilla 下载 FTP 数据,可以按照以下步骤进行操作:
首先,确保已经安装了 FileZilla 客户端。你可以从官方网站(https://filezilla-project.org/)下载并安装它。
打开 FileZilla 客户端,点击顶部菜单栏的 "文件(File)",选择 "站点管理器(Site Manager)"。
在站点管理器中,点击 "新建站点(New Site)",然后为站点命名。
在 "主机(Host)" 字段中输入 FTP 服务器的地址。如果有端口号,请在地址后面使用冒号(:)加上端口号。
选择 "协议(Protocol)" 为 "FTP - 文件传输协议(FTP - File Transfer Protocol)"。
在 "登录类型(Logon Type)" 中选择适合你的登录方式。通常情况下,选择 "常规(Generic)" 即可。
输入 FTP 服务器的用户名和密码,这些信息通常由 FTP 服务器的管理员提供。
点击 "连接(Connect)" 按钮,FileZilla 将尝试连接到 FTP 服务器。
一旦连接成功,你将看到服务器文件列表显示在 FileZilla 的右侧窗口中。
导航到你想要下载的文件所在的目录,然后在本地电脑中选择一个目标文件夹。
在服务器文件列表中,选中你要下载的文件,然后右键点击它,选择 "下载(Download)"。
FileZilla 将开始下载选定的文件到你指定的目标文件夹中。
这只是一个基本的指南,并且实际操作可能会因服务器设置和网络条件而有所不同。