이미지를 업로드하는 웹 응용 프로그램이 있고 이미지는 서버의 임시 폴더에 저장되고 웹 페이지에서 aspx 페이지에 표시됩니다.웹 핸들러가 포스트 백에서 실행되지 않음
영문의 코드 :
<img src="PreviewImageQualityHandler.ashx" alt="Picture not loaded" runat="server" id="imagePreview" />
사진을 업로드하고 세션에 고유 한 ID를 추가하는 코드 :
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;
}
}
}
내 문제는 웹 핸들러가 첫 번째 이미지 업로드에서만 실행된다는 것입니다. 새로운 이미지를 업로드하려고하면 웹 핸들러가 실행되지 않습니다.
웹 핸들러에서 Session과 관련된 모든 것을 제거하면 모든 단일 포스트 백에서 실행됩니다.
누군가 내 문제에 관해 밝힐 수 있다면, 나는 매우 감사 할 것입니다!
불행히도 Francis, 나는보고있는 오류를 복제 할 수 없습니다. 아마도 게시자가 게시하는 코드 외부에 문제가 발생했을 가능성이 있습니까? 내기가 어딘가에 캐싱 될 것입니다. 확실하지 않은 무엇 또는 어디서. –