繁体   English   中英

直接下载文件,而不是从window.open(url)下载文件

[英]Download file directly, not from window.open(url)

我目前在ASP.NET应用程序中遇到一些会话问题。 主应用程序将打开一个ASP.NET对话框,其中包含一个PDF文件的链接。 通过使用window.open('myurl/file.pdf');可“下载”此文件window.open('myurl/file.pdf');

这会导致打开一个新窗口,但由于未传输会话对象,因此无法下载文件(请注意,解决方案要复杂一些,因此尝试将会话保留在新窗口中是无效的,因为它已嵌入在C#WebBrowser框架中)。

是否有可能直接从链接而不是通过window.open()下载文件?

如果文件存在于文件系统中,则可以链接到它。 我知道有时候这会根据用户的设置在浏览器中打开文件。

如果您不想通过打开窗口来执行此操作,并且文件是动态生成的:

  1. 使用ButtonLinkButton
  2. 在Button / LinkBut​​ton的Click事件中使用Response.AddHeader

      Response.AddHeader("content-disposition", "attachment;filename={filename.extension}") Response.ContentType = "application/{MIME type here}" 
    1. 将结果流式传输到客户端(您需要查询一下,我通过流式处理DataGrid来使用Excel进行很多工作,而对于PDF则做得不多)

这应该提示用户该怎么做...

只需调用window.dialogArguments.MyFunction(url)即可解决此问题,该窗口将调用父窗口MyFunction(url)。 在该窗口中,我使用了window.external.MyFunctionToDotNet(url),它再次从WebClient中的WebBrowser中获取cookie并下载了文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM