首页 > 后端开发 > C++ > 我可以使用 HTTP 标头获取远程文件的大小吗?

我可以使用 HTTP 标头获取远程文件的大小吗?

Linda Hamilton
发布: 2025-01-03 01:02:41
原创
734 人浏览过

Can I Get a Remote File's Size Using HTTP Headers?

从标头获取 HTTP 文件大小

查询:

需要检索托管的远程文件的大小在开始下载之前在 HTTP 端点处。利用 HTTP 标头来实现此目的是否可行?如果可以,如何访问特定文件的 HTTP 标头来获取其大小?

解决方案:

大多数 HTTP 服务器提供了一种检索文件元数据(包括大小)的机制,而无需传输整个文件。这称为 HEAD 方法。以下是如何使用 C# 中的 HEAD 方法从 HTTP 标头检索文件大小:

public long GetFileSize(string url)
{
    long result = -1;

    System.Net.WebRequest req = System.Net.WebRequest.Create(url);
    req.Method = "HEAD";
    using (System.Net.WebResponse resp = req.GetResponse())
    {
        if (long.TryParse(resp.Headers.Get("Content-Length"), out long ContentLength))
        {
            result = ContentLength;
        }
    }

    return result;
}
登录后复制

警告:

虽然大多数服务器支持 HEAD 方法,但有些服务器可能会支持 HEAD 方法。不允许,或者可能会在响应中省略“Content-Length”标头。在这种情况下,可能需要下载文件以确定其大小。然而,许多服务器为了方便起见提供了此信息。

以上是我可以使用 HTTP 标头获取远程文件的大小吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板