【发布时间】:2013-02-24 21:50:28
【问题描述】:
我有一个 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 是本地系统上文件的路径。
【问题讨论】:
-
filemtime 是你想要的。可能是路径不对,或者上传的文件权限不对
-
所有这些函数调用什么都不返回,同时
is_file($localfile)返回true? -
is_file显示为真。上传文件的权限为-rw-------,所有者为apache用户 -
您无法在文件上传之前获取创建/修改日期/时间,除非用户手动输入该信息。知道文件路径就可以很容易的获取上传的时间戳。
标签: php shell-exec filemtime