我想知道是否有一种方法可以像作者一样将数据存储在文件中?就像您在 Windows 中右键单击一个文件,然后设置它的属性。我可以在 PHP 中读取这些属性吗?
我真正想做的是,我想将图片上传到一个目录,当我在 PHP 页面中显示图片时,我想直接从jpg(或 png)文件的“属性”。
我尝试了 PHP 的 finfo_file()
函数,但没有成功。
感谢您的帮助。
最佳答案
I'm wondering if there is a way I can store data like the author, in a file? Like you right click on a file in Windows, and you set properties of it
Windows 可以通过两种方式显示文件的属性。第一种方式是它是否知道文件格式并且文件格式可以包含元数据。这方面的例子是 JPEG 和 Word 文档。在这两种格式中,关于文件的元数据(作者等)都包含在文件中,Windows 知道如何显示它。元数据的第二种存储方式是使用 NTFS 文件系统存储在替代数据流 (ADS) 中。可以在 http://www.irongeek.com/i.php?page=security/altds 找到使用 ADS 的良好指南。
Can I read those properties in PHP ?
对于文件内元数据,它取决于文件格式。 JPEG EXIF 数据可以通过 exif-read-data
函数 ( http://php.net/manual/en/function.exif-read-data.php )
我没有方便的 NTFS 分区来测试它,但我相信如果在 Windows 中运行它并访问 NTFS 文件系统,您可能能够在 PHP 中访问替代数据流。
What I really want to do is, I want to upload images to a directory, and when I'm showing the images in the PHP page, I want to get the alt attribute directly from the jpg (or png) file's "properties".
包含您想要的元数据的 JPEG 可以通过上面提到的 exif-read-data
函数读取。 PNG 不保存 EXIF 数据,因此没有相应的功能(PNG 可以包含元数据,但似乎没有标准)。
如果您让用户在上传文件时包含姓名和其他数据,您可以存储这些数据并在显示图像时检索它们。数据可以存储在任何地方,例如在数据库中(可能将文件名链接到数据),或在文件系统中(对于名为 image1.png
的图像,您可以将作者的姓名存储在名为 image1.png.txt< 的文件中
)。
关于php - 如何用 PHP 读取文件属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17931378/