如何从 vb asp.net 中的代码隐藏文件将字节数组参数发送到通用处理程序
How to send a byte array parameter to a generic handler from the codebehind file in vb asp.net
任何基于服务器(不在 localHost 上发生)的 IIS 丢失会话,因为新 windows 在新进程下启动 - "per google search results"
在我的例子中,我使用的是 Session("fileData") = fileData
这就是我重定向页面的方式
Page.ClientScript.RegisterStartupScript(Me.GetType(), "OpenPDFScript", "window.open('OpenPDFNewWindowHandler.ashx', '_blank');", True)
我可以不将我的 fileData 保存到会话变量中,而是将其作为参数传递给通用处理程序吗?或者也许他们是更好的方法?
好吧,另一个选项可能更好,因为没有发送完整的文件,但是...
在你的前端:
<% var a = new byte[] { 1, 1, 2, 3, 5, 8 }; %>
<script>
var data = "<% Response.Write(Convert.ToBase64String(a)); %>";
function openhandler() {
var f = document.createElement("form");
f.method = "post";
f.action = "Handler1.ashx";
f.target = "Handler1Window";
var i = document.createElement("input");
i.name = "data";
i.value = data;
f.appendChild(i);
f.style.position = "absolute";
f.style.display = "block";
f.style.width = "0px";
f.style.height = "0px";
f.style.overflow = "hidden";
document.body.appendChild(f);
f.submit();
}
</script>
在你的处理程序中:
public void ProcessRequest(HttpContext context)
{
var bytes = Convert.FromBase64String(context.Request.Form["data"]);
context.Response.ContentType = "text/plain";
context.Response.Write(String.Join(",", bytes));
}
任何基于服务器(不在 localHost 上发生)的 IIS 丢失会话,因为新 windows 在新进程下启动 - "per google search results"
在我的例子中,我使用的是 Session("fileData") = fileData
这就是我重定向页面的方式
Page.ClientScript.RegisterStartupScript(Me.GetType(), "OpenPDFScript", "window.open('OpenPDFNewWindowHandler.ashx', '_blank');", True)
我可以不将我的 fileData 保存到会话变量中,而是将其作为参数传递给通用处理程序吗?或者也许他们是更好的方法?
好吧,另一个选项可能更好,因为没有发送完整的文件,但是...
在你的前端:
<% var a = new byte[] { 1, 1, 2, 3, 5, 8 }; %>
<script>
var data = "<% Response.Write(Convert.ToBase64String(a)); %>";
function openhandler() {
var f = document.createElement("form");
f.method = "post";
f.action = "Handler1.ashx";
f.target = "Handler1Window";
var i = document.createElement("input");
i.name = "data";
i.value = data;
f.appendChild(i);
f.style.position = "absolute";
f.style.display = "block";
f.style.width = "0px";
f.style.height = "0px";
f.style.overflow = "hidden";
document.body.appendChild(f);
f.submit();
}
</script>
在你的处理程序中:
public void ProcessRequest(HttpContext context)
{
var bytes = Convert.FromBase64String(context.Request.Form["data"]);
context.Response.ContentType = "text/plain";
context.Response.Write(String.Join(",", bytes));
}