如何从vb asp.net中的代码隐藏文件向通用处理程序发送字节数组参数

如何从vb asp.net中的代码隐藏文件向通用处理程序发送字节数组参数,asp.net,parameter-passing,generic-handler,Asp.net,Parameter Passing,Generic Handler,任何基于服务器(不在本地主机上)的IIS都会丢失会话,因为新窗口是在新进程下启动的—“按谷歌搜索结果” 在我的例子中,我使用Session(“fileData”)=fileData 这就是我重定向页面的方式 Page.ClientScript.RegisterStartupScript(Me.GetType(), "OpenPDFScript", "window.open('OpenPDFNewWindowHandler.ashx', '_blank');", True) 我可以将文件数据作为

任何基于服务器(不在本地主机上)的IIS都会丢失会话,因为新窗口是在新进程下启动的—“按谷歌搜索结果”

在我的例子中,我使用Session(“fileData”)=fileData

这就是我重定向页面的方式

Page.ClientScript.RegisterStartupScript(Me.GetType(), "OpenPDFScript", "window.open('OpenPDFNewWindowHandler.ashx', '_blank');", True)

我可以将文件数据作为参数传递给通用处理程序,而不是将其保存到会话变量中吗?或者他们的方法更好?

好的,因为不发送完整文件,所以另一种方法可能更好,但是

在前端:

<% 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>

是否可以将足够的数据传递给处理程序,使其能够打开或获取文件数据?一个文件id,等等,也许?这需要一些重新编写,但这并不是一个坏主意@ChrisCarew-仍然我想知道这是否可能Interest将不得不将代码转换为后端vb并进行测试。
public void ProcessRequest(HttpContext context)
    {
        var bytes = Convert.FromBase64String(context.Request.Form["data"]);
        context.Response.ContentType = "text/plain";
        context.Response.Write(String.Join(",", bytes));
    }