我之前一直用FileUpload1.SaveAs来保存图片到指定文件夹我想上传文件的时候无刷新页面(最好是有进度条),然后再把文件地址存到数据库。刚开始我以为能用AJAX来上传,但是不行,在网上看到一些例子,很多是用iframe来上传图片,但我可能是初学者的原因,到现在还没弄明白望各位大侠,给我点思路和源代码

解决方案 »

  1.   

    下面是主要代码,要实现无刷新加个UpdatePanel,属于AJAX技术:            //fu是FileUpload
                if (fu.HasFile)
                {
                    if (fu.PostedFile.ContentLength <= 0)
                        return;
                    string type = fu.FileName.Substring(fu.FileName.IndexOf(".") + 1).ToLower();
                    if (type == "jpg" || type == "gif" || type == "bmp")
                    {
                        string savePath = Server.MapPath("~/upload/");//上传图片保存在项目路径下的upload文件夹下
                        if (!System.IO.Directory.Exists(savePath))
                        {
                            System.IO.Directory.CreateDirectory(savePath);
                        }
                        savePath = savePath + fu.FileName;
                        fu.SaveAs(savePath);
                        e.Values["Photo"] = fu.FileName;
                    }
                    else
                    {
                        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "警告", "<script languaue=javascript> alert('图片格式不正确!请重新选择图片。');</script>");
                        return;
                    }
                }
                else
                    return;有兴趣可加群41752273共同讨论学习
      

  2.   

    刚才发快了,那个e.Values["Photo"]=fu.FileName;不要!
    那个是我项目里面要的
      

  3.   

    不能上传主要是因为你用了Ajax,如果你是用的UpdatePanel这个控件的话
      

  4.   

    UpdatePanel和上传控件FileUpload两者是不能同时用的,不然会出现不能上传文件情况。好像老赵网上有个对UpdatePanel的改进。应该能实现你所要的效果的。
      

  5.   

    http://www.cnblogs.com/JeffreyZhao/archive/2007/03/26/688966.aspx 看看这个!
      

  6.   

    有iframe的实例吗?完全代码?