如何使用c#中的同步webclient请求下载文件,而不显示弹出窗口

时间:2016-09-26 13:43:16

标签: c# .net

我正在使用" webclient"在Windows应用程序中通过URL下载并保存文件。

这是我的代码:

WebClient wc = new WebClient();
wc.Headers.Add(HttpRequestHeader.Cookie, cc);
wc.DownloadFile(new Uri(e.Url.ToString()), targetPath);

这是一个很好的本地系统。(下载文件并自动保存到目标路径,不显示任何弹出窗口)。 但是,当我试图在服务器中执行.exe时,显示保存/打开弹出窗口。 是否需要在服务器设置中下载文件进行任何修改。 请帮我下载文件,不要在服务器上显示弹出窗口。

提前致谢.. enter image description here

2 个答案:

答案 0 :(得分:1)

最后我得到了这个问题的解决方案.. herw代码:

WebClient wc = new WebClient();
wc.Headers.Add(HttpRequestHeader.Cookie, cc);
using (Stream data = wc.OpenRead(new Uri(e.Url.ToString())))
{
    using (Stream targetfile = File.Create(targetPath))
    {
       data.CopyTo(targetfile);
    }
}

这里我刚刚更换了代码

wc.DownloadFile(new Uri(e.Url.ToString()), targetPath);

用吹线:

using (Stream data = wc.OpenRead(new Uri(e.Url.ToString())))
{
 using (Stream targetfile = File.Create(targetPath))
 {
    data.CopyTo(targetfile);
 }
}

现在工作正常.. 谢谢大家的回复..

答案 1 :(得分:-1)

默认情况下,如果它位于受保护文件夹(如ProgramFiles和Windows文件夹)上,则需要管理权限才能保存到targetPath。所以你有两个选择:

  1. 在服务器上以管理员身份运行可执行文件
  2. 确保targetPath是临时文件夹或appData文件夹的位置。

  3. 可能是Can't download files from the computer with enabled TLS 1.1/1.2 protocols using WebClient.DownloadFile method

  4. 的副本 希望有所帮助!