如何从 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));
    }