我有一个PHP站点接受来自用户的文件上传,需要在数据库中存储文件创建/修改(在这种情况下它们应该是相同的)日期/时间。
我尝试过几种方法。这些似乎都没有回复:
$metadata = stat($localfile);
$timestamp = $metadata[9];
die($timestamp);
$metadata = stat($localfile);
$timestamp = $metadata[10];
die($timestamp);
$metadata = filemtime($localfile);
die($metadata);
$metadata = filectime($localfile);
die($metadata);
所以我尝试了基于ls -l
的shell_exec方法。这至少会返回一些东西,虽然看起来上传文件时会覆盖时间,导致输出无用(即返回当前时间)。
在Linux / PHP 5.4上是否有任何可靠的方法来返回文件上传之前的创建/修改日期/时间?
NB $localfile
是本地系统上文件的路径。
答案 0 :(得分:0)
据我所知,PHP无法在修改时间之前找到文件的历史记录。 Linux(不添加任何额外工具)保持三次访问/修改/更改
ls -ce
ls -le
ls -ue
除非您在Linux中找到适合您的审核工具,否则无法获得对文件进行修改的“历史记录”。因此,PHP不支持您要执行的操作。
数据库用于精确存储修改历史记录,使用它。
答案 1 :(得分:0)
stat()函数产生一个关联数组。对于修改时间,使用$ stat ['mtime']和创建时间$ stat ['ctime']。这与服务器的文件副本有关。
上传文件时,文件不会从计算机“移动”,数据流会在移动到网络服务器位置之前复制到临时目录中的新文件中。浏览器也不会发送修改时间戳。