如何检测给定的URL是否为要下载的文件?检测URL是否为文件下载
我碰到了content-disposition
标题,但它似乎并不直接是http 1.1的一部分。
是否有更为标准的方法来检测对的GET
请求是否实际上是/可以下载的文件?
这是响应不是HTML或JSON或类似的东西,但像图像,MP3,PDF文件等?
如何检测给定的URL是否为要下载的文件?检测URL是否为文件下载
我碰到了content-disposition
标题,但它似乎并不直接是http 1.1的一部分。
是否有更为标准的方法来检测对的GET
请求是否实际上是/可以下载的文件?
这是响应不是HTML或JSON或类似的东西,但像图像,MP3,PDF文件等?
我结束了使用content-type
来决定它是一个html文件或在给定的URL的另一端的其他类型的文件。
我正在使用content-disposition
标题内容来检测原始文件名,如果它存在,因为标题在任何地方都不可用。
HTTP是一种传输协议 - 这与硬盘存储布局非常不同。 “文件”的概念根本不存在于HTTP中。没有比您的计算机硬盘驱动器包含人们在办公文件系统中看到的实际纸和纸板“文件”。
无论您认为HTTP消息或URL是否说响应内容不必来自任何计算机文件,也不必由收件人存储在一个中。
对HTTP中的任何GET消息的响应总是可以通过发送另一个具有相同URL(也可能是HTTP/1.1变体中的其他头)的GET请求来“下载”。这是GET消息定义的内容,与文件无关。
我正在寻找一种方法来检测给定URL的另一端有什么。例如,谷歌驱动器的共享文件链接不能直接下载。响应是html。但我明白你的观点。 – Thihara
可能检查文件扩展名是否有可能?对不起,如果不知道更多,我不能放大,但我想你可以考虑使用PHP来实现这一点,如果HTML没有足够的功能?
不幸的是,它并不那么简单:-)。有时,标题中没有文件名或扩展信息。 – Thihara
是什么让你认为Content-Disposition不是HTTP的“部分”?见http://www.iana.org/assignments/message-headers/message-headers.xhtml –
@JulianReschke https://www.ietf.org/rfc/rfc2616.txt,第5.5节。 – Thihara
两年前RFC 2616已经过时。 –