【问题标题】:How to disable Download Prompt like 'do you want to open or save or save_as?'如何禁用下载提示,例如“您要打开还是保存还是另存为?”
【发布时间】:2023-03-19 12:37:01
【问题描述】:

我正在尝试下载位于 Internet 站点上的文件,并且我知道如何处理 WebClient 类。

但在这种情况下,网站被重定向到某个网址,因此,我正在考虑使用Process.Start("URL address before re-directed") 以避免通过重定向网址下载的复杂性。我什至通过重定向的网址成功下载了文件。

但是,我很好奇,并希望尽可能通过删除一些中间步骤来加快我的应用程序。

如果我通过Process.Start("URL address before re-directed") 接近,Download Prompt 会显示询问用户,例如“您要打开吗?节省?另存为?'。

我不希望显示此下载提示并希望自动保存以在我的应用程序中使用该文件。(如果可能,我想指明要保存的位置(路径)。)

非常感谢!

【问题讨论】:

    标签: c# wpf download process.start


    【解决方案1】:

    Process.Start("Some URL") 只是告诉操作系统处理 URL。操作系统看到一个 URL 并将其提供给默认浏览器。默认浏览器执行任何配置为执行的操作。所以使用Process.Start("Some URL") 你不能强制默认浏览器不显示下载提示。

    您可能正在寻找HttpWebRequest.AllowAutoRedirect

    来自 MSDN 的示例:

    HttpWebRequest myHttpWebRequest= (HttpWebRequest)WebRequest.Create("http://www.contoso.com");
    myHttpWebRequest.MaximumAutomaticRedirections=1;
    myHttpWebRequest.AllowAutoRedirect=true;
    HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse();  
    

    当然你想要一个文件:

    using (var stream = myHttpWebResponse.GetResponseStream()) {
        using (var fileStream = new FileStream(filePath, FileMode.Create)) {
            stream.CopyTo(fileStream);
        }
    }
    

    【讨论】:

    • 非常感谢您提供的excellnet知识。我已经尝试过您的建议,但该文件包含要重定向的网址,因为我已经获得了 我的问题似乎有点令人困惑..?你能把代码从重定向的网址下载吗?非常感谢 ! :)
    • @KayLee 所以你说的不是好的http重定向,而是邪恶的脚本重定向。那你可能倒霉了……
    • 亲爱的Fabian,我只需要从重定向的网址下载。我无法理解暗脚本重定向的含义..我决定按照我最初的想法像你一样先下载并提取地址以进行重定向并继续前进。希望有货与您同在! :)
    猜你喜欢
    • 1970-01-01
    • 2012-01-30
    • 2013-05-22
    • 2011-07-20
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多