如何用PHP读取文件属性?

jef*_*eff 5 php properties file fileinfo

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

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

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

谢谢你的帮助。

Ebo*_*bob 3

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

Windows 有两种显示文件属性的方法。第一种方法是它是否知道文件格式并且文件格式可以包含元数据。例如 JPEG 和 Word 文档。在这两种格式中,有关文件的元数据(作者等)都包含在文件中,并且 Windows 知道如何显示它。元数据存储的第二种方式是使用 NTFS 文件系统将其存储在替代数据流 (ADS) 中。有关使用 ADS 的良好指南,请访问http://www.irongeek.com/i.php?page=security/altds

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

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

我没有方便的 NTFS 分区来测试它,但我相信如果在 Windows 中运行 PHP 并访问 NTFS 文件系统,您可能能够访问 PHP 中的替代数据流。

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

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

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