我做了一个小脚本,允许我从FTP服务器下载图片。但是,问题是,每当我执行脚本,所有的图片都下载。有没有办法重写代码,使它只下载新的图片?
我的脚本如下所示:
$ftp_server = "my_server_ip";
$ftp_user = "my_user_name";
$ftp_pass = "my_password";
$DIR="my_path_to_images_folder";
$conn = ftp_connect($ftp_server);
if(!$conn)
{
exit("Can not connect to server: $ftp_server\n");
}
if(!ftp_login($conn,$ftp_user,$ftp_pass))
{
ftp_quit($conn);
exit("Can't login\n");
}
ftp_chdir($conn,$DIR);
$files = ftp_nlist($conn,'.');
for($i=0;$i<count($files);$i++)
{
if(!ftp_get($conn,$files[$i],$files[$i],FTP_BINARY))
{
echo "Can't download {$files[$i]}\n";
}
else
{
echo "Successfully transferred images!";
}
}
ftp_quit($conn);
- 谢谢-谢谢
3条答案
按热度按时间cbeh67ev1#
要仅下载本地尚不存在的文件或比本地副本更新的文件,请用途:
如果您的服务器支持
MLSD
命令,并且您有PHP 7.2和更高版本,则可以将ftp_nlist
和对ftp_mdtm
的重复调用替换为对ftp_mlsd
function的一次有效调用。另请参阅How to get last modified text files by date from remote FTP location
lqfhib0f2#
您可以使用file_exists()方法检查映像的可用性
如果该方法返回true,则不复制比文件。
我想你可以修改脚本没有我的帮助:)
zf9nrax13#
您需要定义“new”。
将已传输的图像写入日志文件,然后在脚本下次运行时,您可以查找已传输的图像,并仅传输“新”图像(不在日志文件中的图像...)