如果你從Page類繼承的類中執行這條語句,才可以簡單地使用
DataBase = Server.MapPath("data.mdb");
否則寫全命名空間:System.Web.HttpContext.Current.Server.MapPath();
總注:Server.MapPath獲得的路徑都是服務器上的物理路徑,也就是常說的絕對路徑
1、Server.MapPath("/")
注:獲得應用程序根目錄所在的位置,如 C:\Inetpub\wwwroot\。
2、Server.MapPath("./")
注:獲得所在頁面的當前目錄,等價於Server.MapPath("")。
3、Server.MapPath("../")
注:獲得所在頁面的上級目錄。
4、Server.MapPath("~/")
注:獲得當前應用級程序的目錄,如果是根目錄,就是根目錄,如果是虛擬目錄,就是虛擬目錄所在的位置,如C:\Inetpub\wwwroot\Example\。
在多線程裡面使用HttpContext.Current,HttpContext.Current是得到null的.
所以在線程調用方法,方法中類裡面的System.Web.HttpContext.Current.Server.MapPath() 獲取不到對象。
應該這樣用:
public static string MapPath(string strPath)
{
if (HttpContext.Current != null)
{
return HttpContext.Current.Server.MapPath(strPath);
}
else //非web程序引用
{
strPath = strPath.Replace("/", "\\");
if (strPath.StartsWith("\\"))
{
//strPath = strPath.Substring(strPath.IndexOf('\\', 1)).TrimStart('\\');
strPath = strPath.TrimStart('\\');
}
return System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strPath);
}
}
http://blog.csdn.net/lego2816/article/details/6781677
服務器路徑
if (FileUpload1.HasFile)
{
string typepic = FileUpload1.PostedFile.ContentType;//獲取圖片上傳格式
int imgsize = FileUpload1.PostedFile.ContentLength;//獲取圖片大小
//對獲取的格式進行判斷
if (typepic == "image/bmp" || typepic == "image/gif" || typepic == "image/pjpeg" || typepic == "image/x-png")
{
if (imgsize / 1024 < 600)//判斷是否超級過600KB
{
string savepic = getname(FileUpload1.PostedFile.FileName);
FileInfo ff = new FileInfo(savepic);
string newp = ff.Name;
string savetu = Server.MapPath("../HomeAd/" + newp);
/////////////////////////////////這裡的Server.MapPath()就是將上傳的圖片保存到服務器地址////////////////////
txtImage1.Text = newp;
if (!File.Exists(savetu))
{
FileUpload1.SaveAs(savetu);
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "onekey", "alert('圖片上傳成功')", true);
......余下全文>>
suu_path=Server.MapPath("../uvcx.asp") 改成suu_path=Server.MapPath("./uvcx.asp")