文件上传控制错误

时间:2011-04-04 00:20:59

标签: c# asp.net file-upload

我正在使用文件上传控件,这是我的代码:

//Uploading the image
     if (imageUpload.HasFile) 
     {
         try
         {
             if (imageUpload.PostedFile.ContentType == "image/jpeg")
             {
                 if (imageUpload.PostedFile.ContentLength < 102400)
                 {
                     string im = ( "~/User" +  "/" + Page.User.Identity.Name + "/" + Page.User.Identity.Name  + ".jpeg");
                     imageUpload.SaveAs(im);
                     uploadLabel.Text = "";
                 }
                 else
                 {
                     uploadLabel.Text = "File size must be less than 1024 kb";
                 }
             }
             else 
             {
                 uploadLabel.Text = "File must be in jpeg/jpg format"; 
             }
         }
         catch(Exception ex) 
         {
             uploadLabel.Text = "File upload failed becuase: " + ex.Message; 
         }
     }

但我得到一个错误: SaveAs方法配置为需要根路径,路径“path”不是root。

我在做错了什么。 感谢

4 个答案:

答案 0 :(得分:1)

SaveAs()需要绝对路径。

尝试使用Request.PhysicalApplicationPath + "\\User"

答案 1 :(得分:1)

Save方法配置为需要绝对路径(在某些驱动器中以X:\...开头)。

您应该致电Server.MapPath以获取磁盘上的绝对路径~/whatever

答案 2 :(得分:0)

添加您声明im的Server.MapPath Server.MapPath为您提供绝对路径。

string im = Server.MapPath("/User") + "/" + Page.User.Identity.Name + "/" + Page.User.Identity.Name + ".jpeg";

答案 3 :(得分:0)

 string filename = FileUpload1.FileName.ToString();
     if (filename != "")
        {             
            ImageName = FileUpload1.FileName.ToString();

            ImagePath = Server.MapPath("Images");
            SaveLocation = ImagePath + "\\" + ImageName;
            SaveLocation1 = "~/Image/" + ImageName;
            sl1 = "Images/" + ImageName;
            FileUpload1.PostedFile.SaveAs(SaveLocation);
         }
试试这可能有助于...... [/ p>