ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 838|回复: 7

[求助] 如何得到真实文件后缀

[复制链接]

TA的精华主题

TA的得分主题

发表于 2020-11-22 22:56 | 显示全部楼层 |阅读模式
以下代码可以下载文件,但无法得到真实后缀,有高手会么,谢谢了!

Sub download(url,target)
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Dim http,ado
Set http = CreateObject("Msxml2.ServerXMLHTTP")
http.SetOption 2,13056 '忽略https错误
http.open "GET",url,False
http.send
Set ado = createobject("Adodb.Stream")
ado.Type = adTypeBinary
ado.Open
ado.Write http.responseBody
ado.SaveToFile target
ado.Close
End Sub
Const Example="http://www.wdfxw.net/goDownFiles.aspx?key=72957249"
download Example,"test"

TA的精华主题

TA的得分主题

发表于 2020-11-23 00:36 | 显示全部楼层
Sub download(url, target)
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Dim http, ado
Set http = CreateObject("Msxml2.ServerXMLHTTP")
http.SetOption 2, 13056 '忽略https错误
http.Open "GET", url, False
http.send
Set ado = CreateObject("Adodb.Stream")
ado.Type = adTypeBinary
ado.Open
ado.Write http.responseBody
ado.SaveToFile target
ado.Close
End Sub

Sub rename(name)
Dim DAT() As Byte
Dim FileSize As Long '文件度

FileSize = FileLen(name) '获取文件度
ReDim DAT(FileSize - 1) As Byte
Open name For Binary As #1
    Get #1, , DAT
Close

TOU = Hex(DAT(0)) & Hex(DAT(1)) & Hex(DAT(2)) & Hex(DAT(3))
If TOU = "D0CF11E0" Then
Name name As name & ".doc"
End If

End Sub


Sub TEST()
Const Example = "http://www.wdfxw.net/goDownFiles.aspx?key=72957249"
download Example, "N:\1121"
rename ("N:\1121")
End Sub


读文件头

‘=============================================
JPEG (jpg),   文件头:FFD8FF                        文件尾:FF D9
PNG (png),    文件头:89504E47                      文件尾:AE 42 60 82
GIF (gif),   文件头:47494638                      文件尾:00 3B ZIP Archive (zip), 文件头:504B0304                      文件尾:50 4B

TIFF (tif),   文件头:49492A00                      文件尾:
Windows Bitmap (bmp),   文件头:424D                         文件尾:
CAD (dwg),   文件头:41433130                      文件尾:
Adobe Photoshop (psd), 文件头:38425053                      文件尾:
Rich Text Format (rtf), 文件头:7B5C727466                     文件尾:
XML (xml), 文件头:3C3F786D6C                     文件尾:
HTML (html), 文件头:68746D6C3E
Email [thorough only] (eml), 文件头:44656C69766572792D646174653A
Outlook Express (dbx), 文件头:CFAD12FEC5FD746F
Outlook (pst), 文件头:2142444E
MS Word/Excel (xls.or.doc), 文件头:D0CF11E0
MS Access (mdb), 文件头:5374616E64617264204A
WordPerfect (wpd), 文件头:FF575043
Adobe Acrobat (pdf), 文件头:255044462D312E
Quicken (qdf), 文件头:AC9EBD8F
Windows Password (pwl), 文件头:E3828596

RAR Archive (rar), 文件头:52617221
Wave (wav), 文件头:57415645
AVI (avi), 文件头:41564920’

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2020-11-25 10:32 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-12-8 11:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
feeyii 发表于 2020-11-23 00:36
Sub download(url, target)
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2

谢谢老师指点,但无法区分.xls\doc\ppt,因为文件头都是一样的:D0CF11E0 ,还有解决办法么?

TA的精华主题

TA的得分主题

发表于 2020-12-8 12:09 | 显示全部楼层
那就在文件头基础上用应用打开。看文件对象是否存在再来判断是什么后缀。

TA的精华主题

TA的得分主题

发表于 2020-12-8 12:33 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-12-8 13:20 | 显示全部楼层
本帖最后由 gareth 于 2020-12-8 13:30 编辑
kevinchengcw 发表于 2020-12-8 12:33
http.getresponseheader("content-disposition")
里面有文件名

非常感谢老师指点

TA的精华主题

TA的得分主题

 楼主| 发表于 2020-12-8 14:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
kevinchengcw 发表于 2020-12-8 12:33
http.getresponseheader("content-disposition")
里面有文件名

可以得到整个下载的链接路径么
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-20 20:55 , Processed in 0.041136 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表