ASP.当表单提交返回要下载的文件时.NET: JS回调
ASP.NET: JS callback when form submit returns file to download
我有一个同步工作的ASPX表单页面(没有AJAX!)
此页上的一个按钮通过将文件直接写入响应流来返回要下载的文件:
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename=logfile.txt");
Response.TransmitFile(Server.MapPath("~/wmtest.docx"));
Response.End();
在浏览器显示"下载文件"对话框之前或之后,当响应返回时,我需要在页面上调用javascript回调。
有办法吗?
注意:它不是服务器上存在的可以通过URL访问或下载的真实物理文件,而是在请求中生成和返回的文件,因此返回文件的URL,然后在客户端使用JS下载它不是一个选项
提前感谢!——迈克尔。
由于您的响应返回流作为内容类型,因此您不能返回具有相同响应的html/javascript。我建议创建一个专门的下载。Aspx或类似的下载文件并使用javascript打开:
下载。Aspx(空-无html):
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="download.aspx.cs" Inherits="WebApplication2.download" %>
download.aspx.cs (employee):
public partial class download : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename=logfile.txt");
Response.TransmitFile(Server.MapPath("~/wmtest.docx"));
Response.End();
}
}
从你的页面下载文件:
<input type="button" class="js-download" value="Download file"/>
<script>
var button = document.getElementsByClassName("js-download")[0];
button.addEventListener("click", function () {
window.open("download.aspx", "download");
console.log("download starting....")
});
</script>
相关文章:
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 检查浏览器'在asp.net的后端代码中启用或禁用了s JS
- 以下内容在ASP.net/JS中可能存在吗
- Node.js HTTP/NET——连接和请求之间的区别
- ASP.NET MVC路由-动态加载.js脚本
- 在带有 bootbox 的自定义对话框中添加选项以选择表单控件.js在 ASP.NET MVC 中
- 在Asp.net的空网站中,如何改变"Web.config”;使内容(.js)文件显示在浏览器中,而不是下载
- 用asp.net绘制js行
- 如何从asp.net中显示的JS页面重定向到特定页面
- 无法在纯js中处理net::ERR_CONNECTION_REFUSED
- 如何从vb,net后面的代码中调用这个Js函数
- Asp.net and JS Error
- 如何删除Angular.js项目中的.NET
- 在.net()调用后使用d3.js将数据放入表中
- jquery.min.js版本冲突在asp.net网站中不起作用
- What does connect.facebook.net/en_US/all.js do
- Breeze.js/NET+EF复杂的对象行为相当奇怪
- JS Websocket卡在连接TCPListener-VB.net的状态
- ASP.当表单提交返回要下载的文件时.NET: JS回调
- 如何使用系统.网状物使用amd模块进行优化(.net-js-bundler)