【发布时间】:2019-06-10 13:10:09
【问题描述】:
我使用下面的代码来下载一个 excel 文件,它可以工作,但是正在下载的文件太大。
using (var wc2 = new WebClient())
{
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
wc2.Headers.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
//
//wc2.DownloadFileAsync(fileUri, AppDomain.CurrentDomain.BaseDirectory + "\\demo\\" + fileName);
wc2.DownloadFile("https://ds.postnord.com/v2/ptm/file/download/5184.22306", AppDomain.CurrentDomain.BaseDirectory + "\\demo\\test.xls");
}
如果我使用浏览器下载文件,它工作正常,但不使用上面的代码。但是,如果我尝试使用上面的代码从某个地方下载 jpg 文件,它就可以工作。这里可能有什么问题?
【问题讨论】:
-
您在这里猜测扩展名,您确定它是
xls文件吗?你的意思是它也太大了? -
下载链接是真实的——它是一个 XLSX 文件,大小为 695kb。这不是很大。
-
你怎么知道文件“太大”?您告诉我们的所有问题都总结为“它工作正常,但不使用上面的代码”。 实际上出了什么问题?
-
AppDomain.CurrentDomain.BaseDirectory(在正确安装/配置的应用程序中)可能会解析为服务器和桌面领域的写保护目录。最有可能的是,您希望在Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)下方的某个位置创建一个目录并将您的垃圾保存在那里。它保证是可写的。 -
刚刚运行提供的代码并下载了文件 - base64 编码。通过base64decode.org验证