如何从vb asp.net中的代码隐藏文件向通用处理程序发送字节数组参数
任何基于服务器(不在本地主机上)的IIS都会丢失会话,因为新窗口是在新进程下启动的—“按谷歌搜索结果” 在我的例子中,我使用Session(“fileData”)=fileData 这就是我重定向页面的方式如何从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) 我可以将文件数据作为
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));
}