我的问题与此问题中的问题相同:
但我的问题是Content-Length
属性包含随响应返回的Content-Length
标头的值,而不是确切的文件大小。
我尝试使用FileInfo
,但它只能将本地文件名作为参数 - 而不是远程文件。
有人可以告诉我如何以字节或千字节为单位获取远程文件大小吗?
答案 0 :(得分:2)
好的我会尝试一下
首先尝试这段代码:
//I am assuming Prg.source_path is the url of the file you want
// Something like : http://www.example.com/my_file.zip
HttpWebRequest wrq = (HttpWebRequest)WebRequest.Create(Prg.source_path);
//You should be getting only the response header
wrq.Method = "HEAD";
using(var wrs = (HttpWebResponse)wrq.GetResponse()){
//Do something logic here...
Console.WriteLine("Content Length is : {0}", wrs.ContentLength);
}
请确保您尝试下载的文件的网址是该文件的 DIRECT 网址。如果您被重定向到其他位置,则响应的标头将是重定向响应的大小。
如果该代码仍然无法为您提供正确的文件大小,我的猜测是您要么被重定向,要么回复确实存在缺陷和不准确(这是不可能的,但可能)。
您能提供您要下载的文件的网址,或者至少提供您发送和获取的请求和回复吗?
编辑02/04/2013 :同时查看此问题:CSS, Javascript and Images have zero length
请参阅Adrian Grigore的答案,检查“控制面板 - > Windows功能 - >万维网服务 - >常见HTTP功能 - >静态内容”。如果没有,检查它,重启IIS(或整个机器,你永远不知道),然后再试一次。