页面继承了ICallbackEventHandler接口,当用户选择文件后,发生了回调,但在服务器端获取不到它的流<input id="imgUp" type="file" style="border:1px solid red;" onchange="FileCallBack();" runat="server"/><input id="btnSave" type="button" value="保存" style="margin-bottom:1em;" runat="server"/><script type="text/javascript">
//<!CDATA[
function FileCallBack()
{}
//]]>
</script>public partial class PreviewImage : System.Web.UI.Page,System.Web.UI.ICallbackEventHandler
{
    string callbackResult=null;    protected void Page_Load(object sender, EventArgs e)
    {
          string callbackBtn = this.ClientScript.GetCallbackEventReference(this, null, "FileCallBack", null);
        btnSave.Attributes.Add("onclick", callbackBtn);
    }    public string GetCallbackResult()
    {
          return callbackResult;
    }    public void RaiseCallbackEvent(string eventArgument)
    {         Stream strem = imgUp.PostedFile.InputStream ;
        //调试时这里stream为null,获取不到流
    }
}
想要回调时获取流,应该怎么做?

解决方案 »

  1.   

    你当然获取不到了,回调的时候也是用ajax处理的,所以是两外一个请求,建议你将流存到session里面,然后回调时取session
      

  2.   


    什么时候能将流存到session里面?整个过程是没有回发的,只有回调。把那个按钮去掉了。<input id="imgUp" type="file" style="border:1px solid red;" runat="server"/><script type="text/javascript">
    //<!CDATA[
    function FileCallBack()
    {}
    //]]>
    </script>
    protected void Page_Load(object sender, EventArgs e)
        {
              string callbackBtn = this.ClientScript.GetCallbackEventReference(this, null, "FileCallBack", null);
            imgUp.Attributes.Add("onchange", callbackBtn);//这一句与先前的不同
        }public string GetCallbackResult()
        {
              return callbackResult;
        }    public void RaiseCallbackEvent(string eventArgument)
        {         Stream strem = imgUp.PostedFile.InputStream ;
            //调试时这里stream为null,获取不到流
        }