2011-01-15 13 views
0

セッションを使ってジェネリックハンドラ(upload.ashx)からファイル名をアップロードしようとしましたが、問題ありません。私は同じページでwebmethodを使用することもできますし、uploadifyは素晴らしいですが、Session ["fileName"]がnullになっています。私のコードに何か間違っていますか?私はファイル名を取得するためにジェネリックハンドラを使用する必要がありますか?webmethodから同じページにセッション変数(uploadifyによってアップロード)を渡す(Asp.Net)?

[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); 
     } 
    } 

答えて

0

Uploadify Flashを使用します。 FlashはCookieを送信しません。 ASP.NETセッションでは、クッキーによって追跡されます。ですから、アップロードしているセッションはありません。申し訳ありません。

+0

迅速な対応をありがとうございます。しかし、私はジェネリックハンドラ(IRequiresSessionState)でセッションを処理することができます.iはなぜ私はこのようなwebmethodを使用できないのだろうかと思う。 – blackraist

+0

ジェネリックハンドラでセッションをどのように処理していますか?コードを表示できますか? –

+0

パブリッククラスアップロード:IHTTPハンドラ、IRequiresSessionState {公共ボイドのprocessRequest(のHttpContextコンテキスト) {が {HttpPostedFileファイル= context.Request.Files [ "FILEDATA"]を試みます。 context.Session ["fileName"] = file.FileName; //動作しています context.Response.Write( "1"); } catch { context.Response.Write( "0"); }} パブリックブールIsReusable {偽 {リターンを得ます。 } } } – blackraist

関連する問題