直接下载文件,而不是从window.open(url)
Download file directly, not from window.open(url)
我当前在ASP.NET应用程序中遇到一些会话问题。主应用程序打开一个ASP.NET对话框,其中包含指向PDF文件的链接。使用window.open('myurl/file.pdf');
"下载"此文件
这会导致打开一个新窗口,但由于会话对象未传输,因此无法下载文件(请记住,解决方案有点复杂,因此尝试将会话保留在新窗口中是行不通的,因为它嵌入在C#WebBrowser框架中)。
有没有可能直接从链接下载文件,而不是通过window.open()?
如果文件系统中存在该文件,您可以直接链接到它。我知道,根据用户的设置,有时会在浏览器中打开该文件。
如果你不想通过打开一个窗口来做到这一点,并且文件是动态生成的:
- 使用
Button
或LinkButton
-
在按钮/LinkButton 的点击事件中使用
Response.AddHeader
Response.AddHeader("content-disposition", "attachment;filename={filename.extension}") Response.ContentType = "application/{MIME type here}"
- 将结果流式传输到客户端(你需要查找这个,我经常使用Excel通过流式传输DataGrids来完成,但不太使用PDF)
这应该提示用户该做什么…
只需调用window.dialogArguments.MyFunction(url),即可解决此问题,该函数调用父窗口MyFunction(url)。在那个窗口中,我使用了window.external.MyFunctionToDotNet(url),它再次从WebClient中的WebBrowser中获取cookie并下载了该文件。
相关文章:
- 直接下载文件,而不是从window.open(url)
- 如何将PDF作为二进制文件传递到window.open()
- 为什么window.open不打开一个以变量形式给出的链接
- 如何在`window.open`之后执行回调
- javascript window.open将无法在Chrome控制台上工作
- window.open根据动态内容自动调整高度和宽度
- window.open使页面向上滚动
- window.open(url).print()在Safari中不起作用
- Javascript window.open()toolbar=no不起作用
- window.open尽管被用户触发,但仍无法在InternetExplorer中工作
- $.ajax().done()中的window.open和弹出窗口拦截器
- 如何在JS文件中添加wordpress permalink(onclick,window.open)
- window.open:是否可以通过修改DOM来打开一个新窗口
- 在window.open()生成的窗口中执行JavaScript
- 检查window.open支持-JavaScript
- javascript window.open(),并在新窗口中搜索DOM
- 从.change()调用window.open时避免弹出阻塞
- window.open没有't在设置setTimeout内工作-弹出窗口被阻止
- 强制 window.open() 在 chrome 中创建新选项卡
- 如何获取 onchange 以设置 onclick=window.open(url)