protected void btnUpdaload_Click(object sender, EventArgs e)
    {
        if (imageUpload.HasFile)
        {
            string extension = Path.GetExtension(imageUpload.FileName);
            if (SafeTool.CheckAllowFile(extension))
            {
                string path = Server.MapPath("~/Images/FlashImages");
                string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + extension;
                imageUpload.PostedFile.SaveAs(path + "\\" + fileName);                Uri uri = Request.Url;
                //注意,这里数据库里保存的是相对地址,显示给用户的是绝对URL,这样即使域名或者路径发生相对更改,也不会影响使用
                //txtLinkUrl.Text = string.Format("{0}://{1}/download/{2}", uri.Scheme, uri.Authority, fileName);//显示给用户的地址
                //hfPath.Value = string.Format("download/{0}", fileName);//数据库中保存的地址
                txtImagePath.Text = string.Format("Images/FlashImages/{0}", fileName);
            }
            else
            {
                JScript.Alert("你上传的文件格式不符合要求!");
            }
        }
        else
        {
            JScript.Alert("请选择一个文件上传!");
        }
    }

解决方案 »

  1.   

    再说明一下:C:\images\a.jpg是物理路径,物理路径在windows下是"\"作为路径分隔符的。
    "images/a.jpg"是相对路径,相对路径是以"/"作为路径分隔符的。//以物理路径保存文件代码
    string path = Server.MapPath("~/Images/FlashImages");
                    string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + extension;
                    imageUpload.PostedFile.SaveAs(path + "\\" + fileName);
    //将物理路径转换成相对路径的代码,写入数据库的就是相对路径
    txtImagePath.Text = string.Format("Images/FlashImages/{0}", fileName);
      

  2.   

      string strUrl = Server.MapPath("~\\image\\"+newname+strExtension); 
                postFile.SaveAs(strUrl); 
                 
                string strSql = "Insert into z_booksInfo(books_img,Goods_ID) values ('" + strUrl + "','0')"; 
                webService.ExcuteSql(strSql); 
    1.你要保证你的上传路径是否正确,在你读的那个位置也要与你的上面路径地址符合
    2.我认为你写的上传估计没有错误,在于你显示的时候路径出错,你可以调试跟踪下
     <asp:Image ID="Image1" runat="server" ImageUrl=' <%# Eval("Goods_img") %>' /> 这句Eval("Goods_img") ,首先要区别绝对地址和相对地址,你用的相对地址的话很容易出错,这个页面和你图片的保存地址估计不一样
      

  3.   

    string strUrl = Server.MapPath("~\\image\\"+newname+strExtension); 改为:string strUrl = "~\\image\\"+newname+strExtension; 
      

  4.   

    忘记加前提了, 如果你的images文件夹在根目录下, 改为:string strUrl = "image\\"+newname+strExtension; 
      

  5.   

    SKYASPNE说的不行啊!提示错误为:SaveAs 方法被配置为需要根路径,但是路径“~\image\14610340.jpg”不是根路径
      

  6.   


     HttpPostedFile postFile = this.fuImage.PostedFile; 
                int intFileLength = postFile.ContentLength; 
                 
                string strImgName = postFile.FileName; 
                int i = strImgName.LastIndexOf("."); 
                string strExtension = strImgName.Substring(i); 
                DateTime now = DateTime.Now;  
                string newname=now.DayOfYear.ToString()+postFile.ContentLength.ToString(); 
                string strUrl = Server.MapPath("~\\image\\"+newname+strExtension); 
                postFile.SaveAs(strUrl); 
                strUrl = "~/image/"+newname+strExtension; //加这个再试试?
      

  7.   

    public partial class Default2 : System.Web.UI.Page
    {
        string gid;
        DataTable dtTable;
        Hashtable hashCar;
        string strSql;
        WebService webService = new WebService();
        protected void Page_Load(object sender, EventArgs e)
        {
            gid = Request.QueryString["gid"].ToString();
            strSql = "Update z_GoodsInfo set Goods_point=Goods_point+1 where Goods_ID='" + gid + "';";
            webService.ExcuteSql(strSql);
            strSql = "select * from z_GoodsInfo where Goods_ID='" + gid + "';";
            dtTable = webService.ExcuteSelect(strSql);
            this.lblGoodsName.Text = dtTable.Rows[0]["Goods_name"].ToString();
            this.lblDesc.Text = dtTable.Rows[0]["Goods_orderDesc"].ToString();
            this.Image1.ImageUrl = dtTable.Rows[0]["Goods_img"].ToString();
            this.lblPoint.Text = dtTable.Rows[0]["Goods_point"].ToString();
            this.lblAddDate.Text = dtTable.Rows[0]["Goods_addDate"].ToString();
            this.lblGoodsMsg.Text = dtTable.Rows[0]["Goods_introduce"].ToString();
            if (dtTable.Rows[0]["Goods_isSpecial"].ToString() == "y")
                this.lblPrice.Text = "优惠价:$" + dtTable.Rows[0]["Goods_specialPrice"].ToString();
            else
                this.lblPrice.Text = "$" + dtTable.Rows[0]["Goods_price"].ToString();
            this.lbtnBuy.CommandArgument = gid;
        }
    问题:string gid;定义的gid,为什么能 gid = Request.QueryString["gid"].ToString();
    我是在修改别人编的程序,我运行时,网页显示不出图片,图片变成这样了差差了,右击差差图片,选择属性,发现大小,类型,创建时间,修改时间都不可用.这些图片都是从数据库中调用的
      

  8.   

    用一个img控件加载你要显示的图片生成比较img 的url和你写的用什么不同