VB 如何识别网络文件名的后缀

mkw007 2018-03-28 12:08:54
比如网络文件:
http://120.79.180.158/ClientDownload/62/ee840c40d3f8defc9d735d97d463af
http://120.79.180.158/ClientDownload/e0/45f66f14cd07f2061f2676aac4e22a

那么ee840c40d3f8defc9d735d97d463af代表的是mp3,jpg,png,gif,mp4,pdf等等文件类型中的哪种呢?如何正确识别出来?
...全文
533 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
o大耳鼠o 2018-03-31
  • 打赏
  • 举报
回复
楼主学习一点前端的知识,就可以弄明白了
舉杯邀明月 2018-03-29
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
ee840c40d3f8defc9d735d97d463af代表一个md5,我猜。
 你的MD5是120bit的吗? 你没看到它的“上级目录”还是一个16进制数吗!它要与它的“上级”合并在一起,才是MD5。 这些URL都是用MD5的第1字节进行了“分组”的。 
笨狗先飞 2018-03-29
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
ee840c40d3f8defc9d735d97d463af代表一个md5,我猜。
我觉得也是
赵4老师 2018-03-29
  • 打赏
  • 举报
回复
ee840c40d3f8defc9d735d97d463af代表一个md5,我猜。
脆皮大雪糕 2018-03-29
  • 打赏
  • 举报
回复
结论是URL看不出来,必须下载文件或者自己编码实现http协议下载部分数据,根据文件头来判断文件类型。
mkw007 2018-03-28
  • 打赏
  • 举报
回复
引用 1 楼 bakw 的回复:
有一部分文件在,http head部分会有文件名内容,特征是用浏览器保存的时候自动变成文件名来保存,解析http协议的head部分能得到 另一些没有,那就要根据文件内容来判断了,一般一个文件头部的字节会有一些对文件格式说明的特征字符,你可以通过这个来识别。
如果url地址中存在文件类型说明的字段,当然可以识别都出。但比如上述的例子,不存在文件类型字段,如何识别?下载下来再识别当然是可以的,问题是不下载到本地来识别的情形下,直接从原生的Url地址能否识别出文件类型?
笨狗先飞 2018-03-28
  • 打赏
  • 举报
回复
有一部分文件在,http head部分会有文件名内容,特征是用浏览器保存的时候自动变成文件名来保存,解析http协议的head部分能得到 另一些没有,那就要根据文件内容来判断了,一般一个文件头部的字节会有一些对文件格式说明的特征字符,你可以通过这个来识别。
笨狗先飞 2018-03-28
  • 打赏
  • 举报
回复
网络的url是虚拟的,甚至同一个url我可以让他每次下载都是不同类型的文件,给你一个极端的例子 http://wwb.17-9.com/ee840c40d3f8defc9d735d97d463af/ 你试试不停刷新这个网址,你说这个url该是什么类型的文件?

$r=rand(1,5);
switch($r)
{
    case 1:
        header("Content-type: text/html; charset=utf-8");
        echo file_get_contents('ok.txt');
        break;
    case 2:
        header('Content-type: image/jpg');
        echo file_get_contents('ok.jpg');
        break;
    case 3:
        header('Content-type: image/gif');
        echo file_get_contents('ok.gif');
        break;
    case 4:
        header('Content-type: image/bmp');
        echo file_get_contents('ok.bmp');
        break;
    case 5:
        header('Content-type:application/pdf');
        echo file_get_contents('ok.pdf');
        break;
}
附上实际实现的PHP原文件, 判断 Content-type 也是一种方法,但是header是为了让浏览器识别我文件类型添加的, 作为文件的时候我也可以不加。
笨狗先飞 2018-03-28
  • 打赏
  • 举报
回复
引用 2 楼 mkw007 的回复:
[quote=引用 1 楼 bakw 的回复:] 有一部分文件在,http head部分会有文件名内容,特征是用浏览器保存的时候自动变成文件名来保存,解析http协议的head部分能得到 另一些没有,那就要根据文件内容来判断了,一般一个文件头部的字节会有一些对文件格式说明的特征字符,你可以通过这个来识别。
如果url地址中存在文件类型说明的字段,当然可以识别都出。但比如上述的例子,不存在文件类型字段,如何识别?下载下来再识别当然是可以的,问题是不下载到本地来识别的情形下,直接从原生的Url地址能否识别出文件类型?[/quote] 如果说只从url判断的话,明显人家不想给出文件类型的,这怎么判断,除非你知道url生成规则 关于协议头中包涵文件名,你还是参考一下 Content-Disposition 比如 https://blog.csdn.net/lihua2915/article/details/6300773 https://blog.csdn.net/cynhafa/article/details/24267295 从url判断不出的时候,你肯定需要有下载行为才能得到更进一步的数据,包括这种Content-Disposition。 如果tcp协议自己能控制的话,你不需要下载完整的文件,只需要得到一部分前面的数据就足够你需要的信息了

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧