检测链接是不是为可下载文件
Posted
技术标签:
【中文标题】检测链接是不是为可下载文件【英文标题】:Detect if link is downloadable file检测链接是否为可下载文件 【发布时间】:2020-03-11 09:31:52 【问题描述】:如何在用户实际点击之前检测目标链接是否会触发下载?
例如,下面的链接是一个文件:
string url="http://www.orimi.com/pdf-test.pdf"
但这个不是:
string url="https://www.google.com/"
我试过了:
Uri uri = new Uri(url);
if (uri.IsFile)
//...
但它为 pdf 链接提供了false
【问题讨论】:
您可以执行 HTTP HEAD 请求并查看我猜的应用程序类型吗?对于此 URL,它返回“application/pdf” 我会坚持 Ryan 的建议。检查这个答案:***.com/a/5953264/2679160 补充一点,Uri 类可以是本地文件,也可以是网址等。IsFile 只会对本地文件返回 true,它不知道网址是否有可下载的文件。 docs.microsoft.com/en-us/dotnet/api/… - 如果文件不可下载,它也没有应用程序类型。 【参考方案1】:您无法真正知道您拥有的链接不会导致文件下载(在调用 URL 之前),因为即使是没有文件扩展名的 URL 也可以链接到文件。
您可以做的是检查 URL 是否包含文件扩展名,这可以使用以下代码完成:
var uri = new Uri('https://www.google.com/');
var fileInfo = new FileInfo(uri.AbsolutePath);
if (!string.IsNullOrWhiteSpace(fileInfo.Extension))
//Uri has no file extension
【讨论】:
以上是关于检测链接是不是为可下载文件的主要内容,如果未能解决你的问题,请参考以下文章