ASP.NET FileUpload文件上传路径问题

在asp.net中经常会使用到上传文件的功能,作为初学者就会用到fileupload这个控件。

情景:

我们上传的文件一般都是要放到服务器的虚拟目录中的,而不是程序运行的地方,先看下下面的代码

 1 protected void btnUpload_Click(object sender, EventArgs e)
 2 {
 3     if (FileUpload1.HasFile)
 4     {
 5         string fileExt = System.IO.Path.GetExtension(FileUpload1.FileName);
 6         if (fileExt == ".jpg" || fileExt == ".gif")
 7         {
 8             try
 9             {
10                 FileUpload1.SaveAs(Server.MapPath("/ScenicImg")+"\\" + FileUpload1.FileName);
11                 Label1.Text = "客户端路径:" + FileUpload1.PostedFile.FileName + "<br>" +
12                               "文件名:" + System.IO.Path.GetFileName(FileUpload1.FileName) + "<br>" +
13                               "文件扩展名:" + System.IO.Path.GetExtension(FileUpload1.FileName) + "<br>" +
14                               "文件大小:" + FileUpload1.PostedFile.ContentLength + " KB<br>" +
15                               "文件MIME类型:" + FileUpload1.PostedFile.ContentType + "<br>" +
16                               "保存路径:" + Server.MapPath("/ScenicImg") + "\\" + FileUpload1.FileName;
17             }
18             catch (Exception ex)
19             {
20                 Label1.Text = "发生错误:" + ex.Message.ToString();
21             }
22         }
23         else
24         {
25             Label1.Text = "只允许上传jpg、gif文件!";
26         }
27     }
28     else
29     {
30         Label1.Text = "没有选择要上传的文件!";
31     }
32 }

我们要注意这里的server.mappath中的"/",这个/代表的是程序的主目录,这样就能找到虚拟目录了

如果不加这个/,路径会映射到程序运行的地方。