php - 如果使用 ftp_put 上传到远程服务器,则保留文件修改的时间戳
问题描述
我有一个 php 脚本,可以将文件从一个文件夹上传到远程 ftp 服务器。将文件上传到远程服务器可以正常工作。连接很好。
但是,上传文件的文件修改时间戳始终是它们传输到远程服务器的时间。当我使用 ftp_put 上传到远程服务器时,有什么方法可以保留修改的时间?还是我需要不同的方法?
下面是代码。连接很好,ftp_put 完成了它的工作。
foreach (glob("$path/Content/*.*") as $filename) {
$contentupstate = ftp_put($connection, "Content/". basename($filename) , $filename, FTP_BINARY);
};
只是想检查这是否可能,或者我们是否必须在远程服务器上做一些事情。感谢任何会提供帮助的人。
解决方案
我认为有两种可能性,如果 FTP 服务器支持它们(未经测试)。首先以正确的格式获取修改时间:
$time = date('YmdGis', file_mtime($filename));
在 PUT 之前(我认为):
$stat = ftp_raw($connection, "MDTM $time Content/". basename($filename));
或者在 PUT 之后:
$stat = ftp_raw($connection, "SITE UTIME $time $time $time Content/". basename($filename));
推荐阅读
- php - 每个单独类的 Laravel Facades 全局外观?
- xamarin - 尚未依赖 nuget 时的包依赖
- javascript - 在 Chrome 扩展脚本之间共享功能的最佳方式是什么?
- javascript - 页面加载AngularJS时文本框绑定不起作用
- amqp - AMQP 的 DistributionMode 是否类似于 Tibco 中的自动确认?
- git - Git将本地仓库指向远程
- java - 如何在java中实现决策矩阵?
- android - 如何在 MaterialAlertDialogBuilder 中的视图周围添加边距?
- python - PyGitHub 问题 get_comments()
- java - 在 Camel-Spring-Boot 设置中从外部 JAR 配置 Camel 路由