gpt4 book ai didi

php - 在 PHP 中获取大文件的 mimetype

转载 作者:太空狗 更新时间:2023-10-29 12:31:27 25 4
gpt4 key购买 nike

我有一个 PHP 脚本可以上传文件并返回给定文件的 mimetype。这对于小文件非常有效,但是当我开始使用大文件(100mb 以上)时,响应会迅速下降。

有没有一种方法可以快速检索给定文件的 mimetype 而无需将其加载到内存或读取整个文件?据我所知,mimetype 存储在文件的前几个字节中,所以我不需要处理整个资源,对吗?我尝试了以下方法:

finfo_open(FILEINFO_MIME_TYPE) -> crashes on files over 60mb

file -bi -> Delay directly relates to size of file. Slow (10+ seconds)

xdg-mime query filetype your_file -> Slow. As above

我找不到任何其他可以提供帮助的 PHP 脚本/模块。我敢肯定,我不是唯一经历过这种情况的人,但我的 Google-fu 似乎缺乏,因为我根本找不到任何解决方案。

我正在使用与我的生产设置相同的 Oracle Linux 机器。

谢谢!

编辑:我的文件也没有文件扩展名,它们以唯一的 ID 存储,很像

eed78421-7184-46f3-9c68-73315c47e3c8

最佳答案

如果您不能依赖文件扩展名并且希望避免加载整个文件,那么您正在寻找的是文件签名或魔数(Magic Number)以及从何处获取它们。维基百科有一个不完整列表,它从魔数(Magic Number)映射到文件扩展名(您可以从中映射到 mime 类型)。

https://en.wikipedia.org/wiki/List_of_file_signatures

然后您将需要使用有限的 http://php.net/manual/en/function.fread.php 来实现一些东西读取一些字节并检查魔数(Magic Number)(您可能只想查找一些特定的数)。

关于php - 在 PHP 中获取大文件的 mimetype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25806738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com