3

我的服务器上有数百个 mp3 文件。每个文件modified-date都很重要,因为它由 PHP 获取filemtime以表示其上传日期(因为如果不将值存储在数据库中就无法确定上传时间)。

我遇到了一个音频问题,其中所有文件都需要规范化并重新上传到服务器。当然,这会将modified-date每个文件的 更改为“今天”。我需要每个文件保留它的原始modified-date.

我不确定这是软件推荐问题还是编程问题,所以如果这是错误的 .SE 站点,我深表歉意。这甚至可能吗?

4

2 回答 2

3

您应该可以通过触摸设置修改时间:http: //php.net/manual/en/function.touch.php

这需要 PHP > 5.3 并且运行脚本的用户(可能是您的 Web 用户,除非您从 cli 运行它)需要对文件具有写入权限。

您有两种实施方案:

  1. 将文件名及其 mtime 存储在临时存储(文件或数据库表)中。完成上传后,运行所有文件并使用 touch 重置 mtime。

  2. 上传文件时,请检查文件是否已存在。如果是这样,请在临时变量中获取 mtime,覆盖文件,然后用正确的 mtime 触摸它。

于 2013-06-05T21:43:09.427 回答
2

我知道这不是您要寻找的答案,但是开始将这些信息存储在数据库中比依赖上次修改日期更有意义。通过这种方式,您可以向用户显示他们需要知道的日期并保留修改的真实日期。

像这样的方法也为您提供了更多的灵活性。

根据@Snailer 的要求 - 为了结束这个问题。

于 2013-06-07T19:57:49.880 回答