检测 URL 是否为文件下载
Detecting if a URL is a file download
如何检测给定的 URL 是否是要下载的文件?
我遇到了 content-disposition
header,但它似乎不是 http 1.1 直接的一部分。
是否有更标准的方法来检测对给定 URL
发出的 GET
请求的 response
是否实际上是要下载的文件 to/can?
也就是说响应不是 html 或 json 或任何类似的东西,而是像图像、mp3、pdf 文件等?
HTTP 是一种传输协议 - 这与硬盘驱动器存储布局截然不同。 "file" 的概念在 HTTP 中根本不存在。您的计算机硬盘驱动器所包含的实际 paper-and-cardboard "files" 与办公文件系统中的实际内容一样。
无论您怎么想,HTTP 消息或 URL 都在说响应内容不必来自任何计算机文件,也不必由收件人存储在一个文件中。
对 HTTP 中任何 GET 消息的响应始终可以是 "downloaded",方法是发送另一个具有相同 URL 的 GET 请求(在 [=19 的情况下,可能还有其他 headers =].1 变体)。这内置于 GET 消息的定义中,与文件无关。
我最终使用 content-type
来确定它是 html 文件还是位于给定 URL.[=12 的另一端的其他类型的文件=]
我正在使用 content-disposition
header 内容来检测原始文件名是否存在,因为 header 并非随处可用。
是否可以检查文件扩展名?对不起,我不能在不了解更多的情况下展开这么多,但我想如果 HTML 没有足够的功能,你可以考虑使用 PHP 来实现这个?
如何检测给定的 URL 是否是要下载的文件?
我遇到了 content-disposition
header,但它似乎不是 http 1.1 直接的一部分。
是否有更标准的方法来检测对给定 URL
发出的 GET
请求的 response
是否实际上是要下载的文件 to/can?
也就是说响应不是 html 或 json 或任何类似的东西,而是像图像、mp3、pdf 文件等?
HTTP 是一种传输协议 - 这与硬盘驱动器存储布局截然不同。 "file" 的概念在 HTTP 中根本不存在。您的计算机硬盘驱动器所包含的实际 paper-and-cardboard "files" 与办公文件系统中的实际内容一样。
无论您怎么想,HTTP 消息或 URL 都在说响应内容不必来自任何计算机文件,也不必由收件人存储在一个文件中。
对 HTTP 中任何 GET 消息的响应始终可以是 "downloaded",方法是发送另一个具有相同 URL 的 GET 请求(在 [=19 的情况下,可能还有其他 headers =].1 变体)。这内置于 GET 消息的定义中,与文件无关。
我最终使用 content-type
来确定它是 html 文件还是位于给定 URL.[=12 的另一端的其他类型的文件=]
我正在使用 content-disposition
header 内容来检测原始文件名是否存在,因为 header 并非随处可用。
是否可以检查文件扩展名?对不起,我不能在不了解更多的情况下展开这么多,但我想如果 HTML 没有足够的功能,你可以考虑使用 PHP 来实现这个?