我正在尝试从不直接链接到文件的 URL 保存 zip 文件(例如http://website.com/DocMgm/DocMgmServlet?docNum=pce-0011&attachmentType=Archive)。当我在浏览器中使用链接时,它会显示下载文件选项,但我似乎无法让它以编程方式工作。
当我尝试执行任一方法时,创建的 zip 文件会产生以下错误:
无法将文件“C:\temp\PCE-0011.zip”作为存档打开
网址是假的。我不知道它与服务器上的文件之间的确切关系,我认为它可以重定向到文件的最新版本(它是通过文档控制系统)。
以下是我尝试过的两种一般方法:
string ZipURL = "http://website.com/DocMgm/DocMgmServlet?docNum=pce-0011&attachmentType=Archive";
string SaveURL = "c:\\temp\\PCE-0011.zip";
WebClient webClient = new WebClient();
webClient.DownloadFile(ZipURL, @SaveURL);
和:
string url = "http://website.com/DocMgm/DocMgmServlet?docNum=pce-0011&attachmentType=Archive";
WebRequest objRequest = System.Net.HttpWebRequest.Create(url);
WebResponse objResponse = objRequest.GetResponse();
byte[] buffer = new byte[32768];
using (Stream input = objResponse.GetResponseStream())
{
using (FileStream output = new FileStream("C:\\temp\\PCE-0011.zip",
FileMode.CreateNew))
{
int bytesRead;
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, bytesRead);
}
}
}