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

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

情景:

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

    protected void btnUpload_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile)
        {
            string fileExt = System.IO.Path.GetExtension(FileUpload1.FileName);
            if (fileExt == ".jpg" || fileExt == ".gif")
            {
                try
                {
                    FileUpload1.SaveAs(Server.MapPath("/ScenicImg")+"\\" + FileUpload1.FileName);
                    Label1.Text = "客户端路径:" + FileUpload1.PostedFile.FileName + "<br>" +
                                  "文件名:" + System.IO.Path.GetFileName(FileUpload1.FileName) + "<br>" +
                                  "文件扩展名:" + System.IO.Path.GetExtension(FileUpload1.FileName) + "<br>" +
                                  "文件大小:" + FileUpload1.PostedFile.ContentLength + " KB<br>" +
                                  "文件MIME类型:" + FileUpload1.PostedFile.ContentType + "<br>" +
                                  "保存路径:" + Server.MapPath("/ScenicImg") + "\\" + FileUpload1.FileName;
                }
                catch (Exception ex)
                {
                    Label1.Text = "发生错误:" + ex.Message.ToString();
                }
            }
            else
            {
                Label1.Text = "只允许上传jpg、gif文件!";
            }
        }
        else
        {
            Label1.Text = "没有选择要上传的文件!";
        }
    }

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

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

原文地址:https://www.cnblogs.com/TivonStone/p/2459503.html