У меня есть веб-приложение, в которое я загружаю изображение, изображение впоследствии сохраняется в папке temp сервера и отображается через веб-манипулятор на странице aspx.Веб-манипулятор не работает при обратной передаче
код для ASPX:
<img src="PreviewImageQualityHandler.ashx" alt="Picture not loaded" runat="server" id="imagePreview" />
код для загрузки изображения и добавление уникального идентификатора сессии:
protected void uploadButton_Click(object sender, EventArgs e)
{
if (FileUploadControl.FileName.EndsWith(".jpg") || FileUploadControl.FileName.EndsWith(".jpeg"))
{
string tempFileName = Path.GetTempFileName();
FileUploadControl.SaveAs(tempFileName);
Session["tempName"] = tempFileName;
Response.Write(Session["tempName"]);
fileName = FileUploadControl.FileName;
}
else
{
Response.Write("<script>alert('Please select a .jpg/.jpeg image to upload')</script>");
}
}
WebHandler код:
public class PreviewImageQualityHandler : IHttpHandler, IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
try
{
if (context.Session.Count > 0)
{
string sessID = context.Session["tempName"].ToString();
Bitmap bmp = (Bitmap)System.Drawing.Image.FromFile(sessID);
context.Response.ContentType = "image/jpg";
MemoryStream ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Bmp);
byte[] b = ms.ToArray();
context.Response.OutputStream.Write(b, 0, b.Length);
}
}
catch(Exception ex)
{
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
Моя проблема заключается в том, что веб-манипулятор запускается только при первой загрузке изображения. Если я попытаюсь загрузить новое изображение, он никогда не срабатывает.
Если я удаляю все, что связано с сеансом с веб-манипулятора, он срабатывает при каждом обратном вызове, как и следовало ожидать.
Если кто-то может пролить свет на мою проблему, я буду чрезвычайно благодарен!
С уважением
Фрэнсис
К сожалению, Фрэнсис, я не могу повторить ошибку, которую вы видите. Возможно, есть что-то вне кода, который вы публикуете, что вызывает проблемы? Моя ставка была бы где-то в кешировании. Не уверен, что и где. –