0
제가 세션을 사용하여 제네릭 처리기 (upload.ashx)에서 파일 이름을 업로드하려고 할 때 문제가 없습니다. 나는 또한 samepage에 webmethod를 사용할 수 있으며 업로드 작업은 훌륭하지만 Session [ "fileName"]이 null이됩니다. 내 코드에 문제가 있습니까? 파일명을 얻기 위해 제네릭 처리기 만 사용해야합니까? Passing (Asp.Net) webmethod에서 동일한 페이지로 (업로드로 업로드 한) 세션 변수?
[WebMethod(EnableSession = true)]
public void LoadPicture(HttpContext context)
{
try
{
HttpPostedFile file = context.Request.Files["Filedata"];
context.Session["fileName"] = file.FileName;
.................... 일부 크기 조정 및 저장 이미지 코드 .........
context.Response.Write("1");
}
catch (Exception ex)
{
context.Response.Write("0");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
using (_modelService = new ModelService())
{
ModelEntity _models = new ModelEntity();
......some codes....
_models.modelphoto = Session["fileName"].ToString();
_modelService.ModelAdd(_models);
}
}
빠른 응답을 보내 주셔서 감사합니다. 하지만 난 일반 처리기 (IRequiresSessionState)와 세션을 처리 할 수 있습니다. 내가 왜 이런 webmethod 사용할 수없는 궁금합니다. – blackraist
일반 처리기로 세션을 어떻게 처리합니까? 코드를 보여줄 수 있습니까? –
공용 클래스 업로드 :을 IHttpHandler, IRequiresSessionState { 공공 무효이 ProcessRequest (HttpContext를 컨텍스트) 는 { 이 { HttpPostedFile 파일 = context.Request.Files [ "FILEDATA을"] 시도; context.Session [ "fileName"] = file.FileName; // 작동 함 context.Response.Write ("1"); } catch { context.Response.Write ("0"); } } 공공 부울 IsReusable { 거짓 { 수익을 얻을; } } } – blackraist