FTP:我可以覆盖文件并保持其修改日期吗?

时间:2013-06-05 21:38:23

标签: php ftp filemtime

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

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

我不确定这是一个软件推荐问题还是一个编程问题,所以如果这是错误的.SE网站我很抱歉。这甚至可能吗?

2 个答案:

答案 0 :(得分:3)

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

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

您有两种实施方式:

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

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

答案 1 :(得分:2)

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

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

按照@Snailer的要求 - 为了结束问题。