我们一直在使用 apache commons net FTP 类通过代理连接到位于我们网络外部的 Sterling commerce FTP 网关以提取文件。我们不列出文件,因为我们知道要拉取的文件的名称,因此我们使用以下方法直接拉取它。
boolean isTransferred = ftp.retrieveFile(remoteFileName, 输出文件);
它已经运行了 3 年,自过去两周以来我们一直面临问题。错误发生在上面一行,并且是
org.apache.commons.net.ftp.FTPConnectionClosedException:收到 FTP 响应 421。服务器关闭连接。org.apache.commons.net.ftp.FTP.__getReply(FTP.java:347) org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:450) org.apache.commons.net.ftp。 FTP.sendCommand(FTP.java:478) org.apache.commons.net.ftp.FTPClient。openDataConnection (FTPClient.java:476) org.apache.commons.net.ftp.FTPClient.retrieveFile(FTPClient.java:1228)
自过去两周以来,我们间歇性地面临这些问题,但不确定其根本原因是什么。双方都没有任何改变。有什么想法可能是什么问题吗?
谢谢,拉维
我有一个 FTP,其中包含一些文件,我想将其提供给用户下载。但是 FTP 受密码保护,我想使用 PHP 验证 FTP 并使链接在 php 页面中可用,以便当用户单击该页面中的任何 FTP 链接时,应该开始下载。
请帮忙。
您好,
如果我正确掌握了 FTP 协议(RFC959),在默认设置的主动模式下,服务器会建立从其端口 20 到客户端连接的 ip/端口的数据连接。
有人可以向我解释一下这实际上如何适用于多个客户端吗?(或者告诉我哪里错了)
更具体地说,我可以说:
1)调用socket()
2)bind()我的ip/端口20的描述符
3)connect()客户端建立数据连接
,同时在另一个处理不同客户端的线程中我尝试做同样的事情,bind()由于明显的原因,调用将失败。
我知道您可以使用带有 SO_REUSEADDR 的 setsockopt() 来让套接字绑定到相同的地址/端口,但是数据包是否会正确传送?我很迷失。
到目前为止,我无法找到有关此事的任何信息,因此我们将不胜感激。
您好,我正在使用 Apache Commons FTP 客户端,我想显示 FTP 客户端使用的 FTP 命令,就像当我使用 changeWorkingDirectory 时,它应该显示它使用的 FTP 命令,例如: CODEOFCOMMAND CHD .....
或者当我上传文件时它应该显示: CODEOFCOMMAND PUT ....
有可能这样做吗?
我想在覆盖 ftp 中的文件时增加次要文档版本。当我跟踪代码时,ContentDiskDriver2.truncateFile()适用于覆盖文件。在这个函数中我用它versionService来增加版本。以下代码编写在 truncateFile() try {
NodeRef nodeRef = getNodeForPath(tree, DriverContent.FILE_OPEN_PARAMS.getPath());
System.out.println("Node Ref: " + nodeRef);
// Increase minor version to file.
Map<String, Serializable> versionProperties = new HashMap<String, Serializable>(2, 1.0f);
versionProperties.put(Version.PROP_DESCRIPTION, "");
versionProperties.put(VersionModel.PROP_VERSION_TYPE, VersionType.MINOR);
VersionService versionService = (VersionService) applicationContext.getBean("versionService");
versionService.createVersion(nodeRef, versionProperties);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
但不幸的是我得到了这个错误。
2013-01-02 14:12:31,609 ERROR [org.alfresco.fileserver] [Sess_FTP3_192.168.1.166] Error from JLAN
org.alfresco.error.AlfrescoRuntimeException: 00020073 Transaction must be active and synchronization is required: Thread[Sess_FTP3_192.168.1.166,5,FTPSessions]
at org.alfresco.repo.transaction.AlfrescoTransactionSupport.registerSynchronizations(AlfrescoTransactionSupport.java:467)
at org.alfresco.repo.transaction.AlfrescoTransactionSupport.getSynchronization(AlfrescoTransactionSupport.java:451)
at org.alfresco.repo.transaction.AlfrescoTransactionSupport.getResource(AlfrescoTransactionSupport.java:244)
at org.alfresco.repo.transaction.TransactionalResourceHelper.incrementCount(TransactionalResourceHelper.java:71) …Run Code Online (Sandbox Code Playgroud) 什么时候从 Linux/Unix 命令行使用 zipsplit 和 split?
我必须从命令行分解一个大的 zip 文件,以防止 ftp 超时(是的,我使用的是被动模式),有人建议使用 zipsplit。该命令不会分解为小于最大文件的单元,并且当我尝试在另一侧重新加入时,所有内容都无法正确重新加入。split 命令让我可以将任何文件分解为任意大小,并通过管道传输简单的 cat 命令重新加入。
我只是感到沮丧,只是不明白为什么 zipsplit 与 split 相比存在。
我正在尝试创建一个.bat文件来删除某个 FTP 文件夹上的所有 XML 文件,无论文件的日期如何。我尝试了很多脚本,但没有任何解决方案。
许多专家都在谈论.txt包含以下脚本的文件,但说实话,我不知道如何执行它,甚至不知道我是否正确创建了文件。
我所需要做的就是删除该容器上的所有文件。
open ftp://xxxx.xxxx.net
myusername
mypassword
cd /bts/xxxx
mdelete *
quit
Run Code Online (Sandbox Code Playgroud) 我在网上搜索过,对此仍然很陌生。请对我有一些耐心。
我想做的是: - 我有一个名为“treeTO”的 TreeView。- 我连接到我的 FTP 服务器,并且想要在树视图中填充此处的所有内容(目录、子目录和文件,无论是什么)。- 这是我到目前为止的代码:
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + ActiveServer.Server + "/");
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
request.Credentials = new NetworkCredential(ActiveServer.UserName, ActiveServer.Password);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
Run Code Online (Sandbox Code Playgroud)
-这将返回以下文本:日志、数据和 WwwRoot。
我很难将其添加到树视图中,然后循环遍历文件夹以将所有内容添加到树视图中。
我只想从 FTP 获取扩展名为 .xls 的文件
我做了以下代码:
public String[] GetFileList()
{
String ftpServerIP = Ftp_Path;
String ftpUserID = Ftp_UserName;
String ftpPassword = Ftp_Password;
FTPFile[] downloadFiles = null;
StringBuilder result = new StringBuilder();
FTPClient ftp = new FTPClient();
try {
ftp.connect("ftp://173.201.0.1/");
ftp.login(ftpUserID, ftpPassword);
downloadFiles=ftp.listFiles();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return downloadFiles;
}
Run Code Online (Sandbox Code Playgroud)
但它不只返回 xls 文件。
请帮我。我怎样才能实现它。
我是java新手。
我想在以下位置托管 az FTP 服务器:mywebsite.domain/ftpserver.php
XAMPP 服务器在我的计算机上运行。php 很重要,因为我想使用 mysql 数据库中的密码对用户进行身份验证,并且他们的目录名称也存储在数据库中。
或者如果有免费的 ftp 服务器,那么我如何从 php 创建 ftp 用户?