从asp.net中的aspx页面中找到root文件夹的目录

时间:2014-07-25 11:50:41

标签: c# asp.net

我有一个aspx页面将图像上传到文件夹.aspx页面位于一个名为admin的文件夹中。 如果我将aspx页面保留在根目录中,我可以在Image文件夹中上传文件,因为它们都在根目录中。
但当我这样做时,将aspx页面保留在文件夹中,它会显示Could not find a part of the path 'C:\Users\...
那么我如何提供路径,以便我能够从也在文件夹内的页面上传文件夹中的图像。

这是我的代码:

      if( fu_subcat.PostedFile.ContentLength>0 )
        {
          fn =Path.GetFileName(fu_subcat.PostedFile.FileName);
            fu_subcat.SaveAs(Server.MapPath("imag/" + fn));
        }

修改

将路径映射为:  Could not find a part of the path 'C:\Users\lenovo\Documents\Visual Studio 2010\WebSites\emarket\Admin\imag

但我在emarket中的文件夹为emarket\imag而不是emarket\Admin\imag

3 个答案:

答案 0 :(得分:1)

最好将图像保存在单独的内容文件夹中,然后使用tilda引用相对路径中的图像,例如〜" content / image"

答案 1 :(得分:1)

使用〜将转到应用程序的虚拟根目录,因此Server.MapPath("〜/ imag /...")应该这样做。

答案 2 :(得分:0)

这是因为当您从

调用该代码时

/Admin/page.aspx

Server.MapPath返回一个相对于/ Admin /的路径 - 所以最终的路径是/ Admin / imag / ...要从root设置路径,你应该在路径前添加一个/。

必须

fu_subcat.SaveAs(Server.MapPath("/imag/" + fn));

注意/在字符串前面。

或者您也可以添加~tilde

fu_subcat.SaveAs(Server.MapPath("~/imag/" + fn));

指向当前ASP.net应用程序的根目录。如果您的应用程序在虚拟目录中运行并作为全局应用程序的一部分,这将非常有用。