php 如何准确判断远程文件的扩展名?
Array
(
[0] => HTTP/1.1 200 OK
[1] => Content-Length: 345942
[2] => Content-Type: application/octet-stream
[3] => Server: Microsoft-IIS/6.0
[4] => X-Powered-By: ASP.NET
[5] => Date: Sun, 08 Dec 2013 05:44:39 GMT
[6] => Connection: close
)
文件名里面没有扩展名,杂乱无章的。
回复讨论(解决方案)
文件名只是用于识别存放于介质中的数据块的标识
在网络通讯中,文件名已经没有意义了
既然 Content-Type: application/octet-stream 已经声明了是一个流
且长度 Content-Length: 345942 也不算太大,你可以先当做图片来分析
所有的数据流都用特定的识别标志,前一阶段就有人在这里发过代码,你可以找一下
文件名只是用于识别存放于介质中的数据块的标识
在网络通讯中,文件名已经没有意义了
既然 Content-Type: application/octet-stream 已经声明了是一个流
且长度 Content-Length: 345942 也不算太大,你可以先当做图片来分析
所有的数据流都用特定的识别标志,前一阶段就有人在这里发过代码,你可以找一下
Content-Type: application/octet-stream这个对应很多种类型的文件,不是唯一的。此外这个文件是rar格式。不是图片。
文件名只是用于识别存放于介质中的数据块的标识
在网络通讯中,文件名已经没有意义了
既然 Content-Type: application/octet-stream 已经声明了是一个流
且长度 Content-Length: 345942 也不算太大,你可以先当做图片来分析
所有的数据流都用特定的识别标志,前一阶段就有人在这里发过代码,你可以找一下
Content-Type: application/octet-stream这个对应很多种类型的文件,不是唯一的。此外这个文件是rar格式。不是图片。
找到答案了,基于文件头是最靠谱的
http://www.yc-edu.org/PHPpeixun/1233.html
正因为类型为 application/octet-stream
所以才需要自己识别!
自己识别就要根据特征字查知识库,常见的文件类型有数千种,你愿意一个个的对比一遍,我并不反对
而最常见的也就十来个,检查起来就快的多了
rar 文件的特征字是 Rar
jpg 文件的特征字是 JFIF
png 文件的特征字是 PNG
....
正因为类型为 application/octet-stream
所以才需要自己识别!
自己识别就要根据特征字查知识库,常见的文件类型有数千种,你愿意一个个的对比一遍,我并不反对
而最常见的也就十来个,检查起来就快的多了
rar 文件的特征字是 Rar
jpg 文件的特征字是 JFIF
png 文件的特征字是 PNG
....
什么叫自己识别??
上一篇: thinkphp迁移到linux后出现500错误怎么办?
下一篇: 返回SQL执行时间的存储过程