2010-06-10 40 views
6

问题:我想通过PHP上传到我的服务器的文件来确定原始文件创建时间。PHP:如何从上传的文件获取创建日期?

我的理解是,该文件从客户端复制到我的服务器,然后在$ _FILES VAR引用上的临时文件。临时文件当然没有用,因为它刚创建。有什么办法可以从客户原始文件中获取创建日期吗?

谢谢

+0

您可以尝试filemtime [http://php.net/manual/en/function.filemtime.php](http://php.net/manual/en/function.filemtime.php) – Karlisson 2011-02-09 19:41:01

回答

10

该数据不是由浏览器发送的,所以无法访问它。与该文件一起发送的数据是mime-type,filename和文件内容。

如果您想要创建日期,您需要用户提供它或通过Flash或Java创建特殊文件上传机制。

+0

谢谢分配!在旁注:将创建日期放在文件内容中是否是一种常见做法?该文件是一个.w3g(与魔兽争霸3相关的重放文件)。如果文件创建者有任何机会将创建的日期放在文件中,我会花一些时间进一步解析它。只是想知道是否有任何“惯例”的方式,让我知道日期是否在那里。 – 2010-06-11 13:16:41

3

号,数据流写入到TMP目录文件而不是文件是简单的“复制”到你的Web服务器,它在技术上“新”的文件。

+0

我不明白被流式传输和被复制的区别。这两种情况都不是简单地将字节从一个地方传输到另一个地方吗?或者传输的元数据有差异吗? – 2010-06-11 13:05:02

+0

呃,这更多的是帮助你“看”这个过程是有意义的。重点是创建/修改的数据保存在文件系统中,而不是实际的文件内容。所以当浏览器发送文件时,它只是发送实际的文件内容而没有进一步的信息。如果你需要这个,Flash是最好的选择,因为FileReference类可以让你访问(客户端)那些可以手动发送的数据。 – 2010-06-11 14:44:03

+0

是的,现在它非常清晰。非常感谢你。 – 2010-06-11 15:21:51

0

根据文件的类型,它可能是可能的:例如,微软Office,打开Office,PDF等多种类型保存文件属性中的“创建日期”值....人们会需要打开文件并读取相关信息....,将它从文件类型有所不同,以对文件类型

0

可以串期间创建友好的格式化的日期到您的文件名称和检索相应后者。

1

除了周围的答案或对嵌入式信息的依赖,值得注意的是,理想的一般答案是,如果浏览器/ UA使用RFC2183中提供的内容实现多部分/表单数据POST,

它们可以利用Content-Disposition头部的附加参数,以在额外的元数据,例如创建和修改日期添加。

我不知道此刻是否有任何浏览器在做这件事。但技术规格在那里,并且据我所见,它与RFC2388兼容。

相关问题