0

我有一个 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. 这至少会返回一些东西,尽管在上传文件时似乎会覆盖时间,从而使输出变得无用(即它返回当前时间)。

Linux/PHP 5.4 上是否有任何可靠的方法可以返回文件上传之前的创建/修改日期/时间?

NB$localfile是本地系统上文件的路径。

4

2 回答 2

0

stat() 函数产生一个关联数组。对于修改时间,使用 $stat['mtime'] 和创建时间 $stat['ctime']。这与服务器的文件副本有关。

文件在上传时不会从计算机“移动”到服务器,数据流会在移动到网络服务器位置之前复制到临时目录中的新文件中。浏览器也不发送修改时间戳。

于 2013-02-24T22:57:39.407 回答
0

据我所知,PHP 无法找到文件修改时间的历史记录。Linux(不添加任何额外工具)保持三倍访问/修改/更改

ls -ce
ls -le
ls -ue

除非您在 linux 中找到审计工具来为您执行此操作,否则无法获取文件修改的“历史记录”。因此 PHP 将不支持您尝试执行的操作。

该数据库用于精确存储对文件的修改历史,使用它。

于 2013-02-24T22:44:14.670 回答