【问题标题】:Start download, check file type, cancel download开始下载,检查文件类型,取消下载
【发布时间】:2013-03-29 08:00:53
【问题描述】:

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

  1. 检查 URL 文件结尾(或至少来自 HTTP 请求响应的 Location
  2. 检查Content-Type(MIME 类型)

从这两个方面来看,第一个更不可靠,但第二个并不总是保证最好的结果。所以我想,是不是可以在下载资源的同时发送GET请求并检查文件类型,然后取消下载?

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

【问题讨论】:

  • 只需将打开的连接传递给您的 libmagic 包装器库,当它确定文件类型时它应该停止读取。

标签: python url http-headers mime-types


【解决方案1】:

如果你想要下载的文件扩展名,你可以检查Content-Disposition header。一个典型的例子:

Content-disposition: attachment; filename=<downloadFilename>

如果响应包含上述标头,您可以使用正则表达式获取文件名,然后执行您的操作。如果该标题不存在,您将不得不回退到您在问题中提到的方法。

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

HTH

【讨论】:

  • 很少设置 Content-disposition 参数。
猜你喜欢
  • 1970-01-01
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-23
相关资源
最近更新 更多