Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 回发后保留图像内容_C#_Asp.net_Session_Handler - Fatal编程技术网

C# 回发后保留图像内容

C# 回发后保留图像内容,c#,asp.net,session,handler,C#,Asp.net,Session,Handler,我有ajax异步文件上传控件和图像控件。当通过uploader选择图像时,我会在图像控件中显示它。 对此,我有如下建议: public class Handler : IHttpHandler, IRequiresSessionState { public void ProcessRequest(HttpContext context) { context.Response.Clear(); if (context.Request.QueryString.Count != 0)

我有ajax异步文件上传控件和图像控件。当通过uploader选择图像时,我会在图像控件中显示它。 对此,我有如下建议:

public class Handler : IHttpHandler, IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
    context.Response.Clear();
    if (context.Request.QueryString.Count != 0)
    {
        //Get the stored image and write in the response.
        var storedImage = context.Session["STORED_IMAGE"] as byte[];
        if (storedImage != null)
        {
            Image image = GetImage(storedImage);
            if (image != null)
            {
                context.Response.ContentType = "image/jpeg";
                image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
            }
        }
    }
}
private Image GetImage(byte[] storedImage)
{
    var stream = new MemoryStream(storedImage);
    return Image.FromStream(stream);
}
public bool IsReusable
{
    get
    {
        return false;
    }
}
}
在Aspx页面中:

    <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Always" runat="server">
            <ContentTemplate>
                <div class="FakeFileUpload">
                    <div class="FakeFileUploadDiv">
                        <asp:Image ID="imgPhoto" runat="server" ImageUrl="download.jpeg" alt="Employee Photo"
                            Height="150px" Width="150px" />
                    </div>
                    <cc11:AsyncFileUpload ID="AsyncFileUpload1" runat="server" ThrobberID="loader"
                        CssClass="FileUploadClass" OnClientUploadComplete="OnClientAsyncFileUploadComplete"
                        OnUploadedComplete="AsyncFileUpload1_UploadedComplete" Width="150" />
                    <asp:Image ID="loader" runat="server" />
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>

有人能帮我做这个吗


提前感谢。

您是否已仔细检查了代码以了解它可能失败的地方?我没有了解它可能失败的地方。会话[“存储的图像”]显示一些数字(字节)。我不知道如何在单击按钮后将该会话分配给图像控件。我不相信处理程序不会处理回发。看看另一个SO问题:那么没有其他方法来保留图像了吗?
 <script type="text/javascript">
        function getRandomNumber() {
            var randomnumber = Math.random(10000);
            return randomnumber;
        }
        function OnClientAsyncFileUploadComplete(sender, args) {
            var handlerPage = '<%= Page.ResolveClientUrl("Handler.ashx")%>';
            var queryString = '?randomno=' + getRandomNumber();
            var src = handlerPage + queryString;
            var clientId = '<%=imgPhoto.ClientID %>';
            document.getElementById(clientId).setAttribute("src", src);
        }
    </script>