Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 开始下载,检查文件类型,取消下载_Python_Url_Http Headers_Mime Types - Fatal编程技术网

Python 开始下载,检查文件类型,取消下载

Python 开始下载,检查文件类型,取消下载,python,url,http-headers,mime-types,Python,Url,Http Headers,Mime Types,我想检查放置在特定URL上的文件的文件类型。现在我知道了两种方法: 检查URL文件结尾或HTTP请求响应中的至少一个位置 检查内容类型MIME类型 从这两方面来看,第一种方法不可靠得多,但第二种方法也不能保证获得最佳结果。所以我想,难道不可能在下载资源时发送GET请求并检查文件类型,然后取消下载吗 如果我开始在浏览器中下载文件,我也可以看到文件扩展名。这在Python中可行吗?如果您想要下载的文件扩展名,可以检查内容处置头。一个典型的例子: Content-disposition: attach

我想检查放置在特定URL上的文件的文件类型。现在我知道了两种方法:

检查URL文件结尾或HTTP请求响应中的至少一个位置 检查内容类型MIME类型 从这两方面来看,第一种方法不可靠得多,但第二种方法也不能保证获得最佳结果。所以我想,难道不可能在下载资源时发送GET请求并检查文件类型,然后取消下载吗


如果我开始在浏览器中下载文件,我也可以看到文件扩展名。这在Python中可行吗?

如果您想要下载的文件扩展名,可以检查内容处置头。一个典型的例子:

Content-disposition: attachment; filename=<downloadFilename>
如果响应包含上述标题,则可以使用regexp获取文件名,然后执行操作。如果标题不存在,您将不得不回到您在问题中提到的方法

如果您对下载的文件类型感兴趣,我建议您坚持使用MIME类型——这通常更可靠


HTH

只需将打开的连接传递到您的libmagic包装库,当它确定文件类型时,它应该停止读取。内容配置参数很少设置。