我正在尝试编写一个脚本,通过ftp将存储在我服务器上的目录的全部内容上传到其他服务器.
我一直在阅读www.php.net上的文档,但似乎无法找到一次上传多个文件的方法.
有没有办法做到这一点,或者是否有一个脚本将索引该目录并创建要上载的文件数组?
在此先感谢您的帮助!
我使用以下代码↓连接到ftp服务器并获取文件列表.它可以在我的本地机器(Fedora 11)上运行,但不能在生产(运行Ubuntu)上运行,其中ftp_nlist方法返回false.
$ftpInfo = array('directory' => 'somewebsite.com',
'user' => 'someuser',
'password' => 'somepass',
'port' => 21,
'timeout' => 30);
$connectionId = ftp_connect($ftpInfo['directory'],
$ftpInfo['port'],
$ftpInfo['timeout']);
$loginResult = ftp_login($connectionId, $ftpInfo['user'], $ftpInfo['password']);
$files = ftp_nlist($connectionId, '.');
var_dump($files);
ftp_close($connectionId);
Run Code Online (Sandbox Code Playgroud)
返回我机器上的文件数组,生产时返回false.
是什么让这特别恼人的是,在这两种情况下,它都设法连接并登录并成功.
var_dump($loginResult);
Run Code Online (Sandbox Code Playgroud)
回报
bool(true)
Run Code Online (Sandbox Code Playgroud) 我很好奇如何使用PHP通过FTP上传文件.假设我上传表单,用户上传了一个文件.如何使用PHP将文件(不从临时目录移动)传输到某个FTP主机?
一般信息
我还在学习C#.为了帮助自己,我正在尝试创建一个程序,它将自动将我的所有本地项目与我的FTP服务器上的文件夹同步.这样,无论我是在学校还是在家,我总是可以使用相同的项目.
我知道像Dropbox这样的程序已经为我做了这个,但我想创造类似的东西,我自己会教我很多东西.
问题
我迈向目标的第一步是从我的FTP服务器下载所有文件,子目录和子文件.我已经设法从下面的代码下载目录中的所有文件.但是,我的代码只列出了主目录中的文件夹名称和文件.子文件夹和子文件永远不会返回,也永远不会下载.除此之外,服务器返回550错误,因为我正在尝试下载文件夹,就像它们是文件一样.我已经在这上面了4个多小时了,但我找不到任何关于如何解决这些问题并让它发挥作用的事情.因此,我希望你们能帮助我:)
码
public string[] GetFileList()
{
string[] downloadFiles;
StringBuilder result = new StringBuilder();
WebResponse response = null;
StreamReader reader = null;
try
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
request.UseBinary = true;
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential(ftpUserName, ftpPassWord);
request.KeepAlive = false;
request.UsePassive = false;
response = request.GetResponse();
reader = new StreamReader(response.GetResponseStream());
string line = reader.ReadLine();
while (line != null)
{
result.Append(line);
result.Append("\n");
line = reader.ReadLine();
}
result.Remove(result.ToString().LastIndexOf('\n'), 1);
return result.ToString().Split('\n');
}
catch (Exception ex)
{
if …Run Code Online (Sandbox Code Playgroud) 我不得不使用流行的FTP客户端(例如FileZilla)将安全FTP设置为Azure Blob存储.经过大量的研究,我发现了一个链接:
代码部署为辅助角色,代码创建一个FTP服务器,可以接受来自所有流行FTP客户端(例如FileZilla)的连接,以便命令和控制blob存储帐户.
按照链接的说明,我已经实现了相同的功能,并在Azure生产环境中部署了辅助角色,并且成功了.但是我仍然无法使用FileZilla连接FTP主机服务器(由我在配置文件中提供).我不知道我做错了什么或错过了什么.
我已经排队了超过10,000个文件,使用免费软件(基于Windows)的FTP客户端上传到基于UNIX的FTP服务器,据我所知,该客户端已经完成,没有错误.
现在,当我查看远程目录(使用Windows软件)时,输出被截断为10,000个文件名.当我使用Windows命令行FTP工具时,会发生这种情况.有没有办法可以使用另一个软件看到超过这个限制?我只需要确认所有确实上传的文件.
有任何想法吗?
有关此限制的任何信息都非常受欢迎.
我正在构建一个Web应用程序,除了其他东西之外,还需要连接到FTP服务器来下载或上传文件.该应用程序是用PHP编写的,它托管在Linux服务器上.
我想知道的是,是否有可能也为SFTP服务器提供支持,但在Google上进行一些快速搜索后,似乎并非如此简单.
所以,问题是:在PHP中使用SFTP的最佳方法是什么?是否有一个类也可以为FTP和SFTP提供支持,以便可以同时使用相同的功能?
如何使用ftplib检查远程ftp上的文件是否是文件夹?
我现在最好的方法是做一个nlst,并遍历每个文件的调用大小,如果文件出错那么它是一个文件夹?
有没有更好的办法?我无法解析列表的输出,因为有大约十几个不同的ftp服务器(很多很老.)
我该怎么办?
我有ftp服务器,我无法在其上安装其他软件.是否有可能在其上创建git存储库并克隆到本地PC?我试图创建本地存储库并将其复制到ftp.它会起作用吗?如何从ftp服务器克隆?
我需要一个python客户端来做FTPES(显式),有没有人有任何python包可以做到这一点的经验.
我无法在python中执行此操作,但可以使用FileZilla等工具连接到FTP服务器
谢谢