如何用PHP读取文件属性?

时间:2013-07-29 18:21:36

标签: php file properties fileinfo

我想知道是否有一种方法可以将文件中的数据存储在文件中?就像你右键单击Windows中的文件,然后设置它的属性。我可以在PHP中阅读这些属性吗?

我真正想做的是,我想将图像上传到目录,当我在PHP页面中显示图像时,我希望直接从jpg中获取alt属性(或者png)文件的“属性”。

我已经尝试过PHP的finfo_file()功能,但没有成功。

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

  

我想知道是否有一种方法可以将文件中的数据存储在文件中?就像你右键单击Windows中的文件,然后设置它的属性

Windows可以通过两种方式显示文件的属性。第一种方法是,如果它知道文件格式,文件格式可以包含元数据。例如JPEG和Word文档。在这两种格式中,有关文件(作者等)的元数据都包含在文件中,Windows知道如何显示它。可以存储元数据的第二种方式是具有NTFS文件系统的备用数据流(ADS)。可以在http://www.irongeek.com/i.php?page=security/altds

找到使用ADS的良好指南
  

我可以在PHP中阅读这些属性吗?

对于文件内元数据,它取决于文件格式。可以通过exif-read-data函数(http://php.net/manual/en/function.exif-read-data.php

读取JPEG EXIF数据

我没有方便的NTFS分区来测试它,但我相信如果在Windows中运行它并访问NTFS文件系统,你可以在PHP中访问Alternative Data Streams。

  

我真正想要做的是,我想将图像上传到目录,当我在PHP页面中显示图像时,我想直接从jpg(或png)文件中获取alt属性“属性”。

如上所述,exif-read-data函数可以读取包含所需元数据的JPEG。 PNG不保存EXIF数据,因此没有相应的功能(PNG可以包含元数据,但似乎没有标准)。

如果用户在上传文件时包含名称和其他数据,则可以存储该文件并在显示图像时检索该文件。数据可以存储在任何地方,例如在数据库中(可能将文件名链接到数据),或者在文件系统上(对于名为image1.png的图像,您可以将作者的名称存储在名为image1.png.txt的文件中。

答案 1 :(得分:1)

stat()可能是您想要的数据最接近的。但它只提供系统级元数据,如 uid

有关更详细的元数据,您需要自行跟踪。

答案 2 :(得分:1)

特别是对于图像,您可能想尝试读取图像的exif数据。 PHP当然有这样做的功能:

http://php.net/manual/en/function.exif-read-data.php