C# 回发后保留图像内容
我有ajax异步文件上传控件和图像控件。当通过uploader选择图像时,我会在图像控件中显示它。 对此,我有如下建议: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)
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>