【发布时间】:2019-02-11 15:43:30
【问题描述】:
您好,我想使用 FTP 连接将位于一台服务器根文件夹中的 csv 文件夹中的 csv 文件下载到我的服务器。我添加了以下代码。它不适合我。 FTP 连接正常,使用此命令 ftp_nlist 列出所有文件。您能帮我将文件从一台服务器的一个文件夹下载到服务器的另一个文件夹吗?
$ftpHost = 'ftp.site.in';
$ftpUsername = 'username';
$ftpPassword = '******';
// open an FTP connection
$connId = ftp_connect($ftpHost) or die("Couldn't connect to $ftpHost");
// try to login
if(@ftp_login($connId, $ftpUsername, $ftpPassword)){
echo "Connected as $ftpUsername@$ftpHost";
}else{
echo "Couldn't connect as $ftpUsername";
}
$contents = ftp_nlist($connId, ".");
var_dump($contents);
// local & server file path
$localFilePath = 'csv';
$remoteFilePath = 'public_html/csvfiles/';
// try to download a file from server
if(ftp_get($connId, $localFilePath, $remoteFilePath, FTP_BINARY)){
echo "File transfer successful - $localFilePath";
}else{
echo "There was an error while downloading $localFilePath";
}
【问题讨论】:
-
“不工作”实际上是什么意思?你有错误吗?哪一个?您是否看到应用程序挂起?直到发生什么?逻辑是否终止但您看不到结果?启动脚本时宇宙会内爆吗?
-
您很可能遇到了防火墙问题。你真的确定你知道 ftp 协议是如何工作的吗?那台远程服务器需要能够连接到您的服务器吗?通过所有防火墙?
-
我收到以下错误下载 csv 时出错
-
ftp_get将单个文件名作为参数,而不是目录。如果要递归复制整个目录,则需要遍历列出的文件。您可能还想寻找一个库来为您执行此操作 - 这比编写自己的 FTP 命令要容易得多。 -
我只想下载一个文件