㈠ asp如何將絕對路徑轉換成虛擬路徑
在web應用程序中的所謂絕對路徑不是什麼d:\這種,而是/項目名稱/文件在項目中的路徑,這樣的話無論是客戶端還是伺服器端都能訪問了.用來顯示其他盤的圖片只能把圖片文件創建個虛擬目錄
㈡ js中怎樣將虛擬路徑映射為物理路徑急...
我不知道你想要做什麼事情,但是js為客戶端腳本語言,所以在安全級別上就有一定的限制。
你說將 虛擬路徑 映射為 物理路徑 ,
那麼這里有兩種情況:
1、文件為客戶端文件,這個明確告訴你,做不到。
2、文件為伺服器上的文件,這個你可以通過ajax機制將抽象路徑交給後台代碼實現即可。
㈢ 如何把虛擬路徑轉換成絕對路徑
Server.Mappath這個獲得伺服器上的物理路徑。如果是放在網頁上的,直接讀就好了。
㈣ asp.net 物理路徑轉虛擬路徑問題
server.mappath()
㈤ 如何把物理路徑轉換成虛擬路徑
1 什麼是物理路徑?什麼是虛擬路徑?
(1) 例子:
用IIS舉個例子:
WEB服務目錄是d:\路徑
那麼用HTTP訪問網站根目錄的時候,其實訪問的是d:\路徑,那麼其中虛擬路徑就是\(根),物理路徑就是d:\路徑
(2) 我自己的理解:絕對路徑一般都是帶有磁碟完成路徑, 而虛擬路徑一般不帶有磁碟
2 程序中虛擬路徑和物理路徑的轉化
#region 物理路徑和相對路徑的轉換
//本地路徑轉換成URL相對路徑
private string urlconvertor(string imagesurl1)
{
string tmpRootDir = Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString());//獲取程序根目錄
string imagesurl2 = imagesurl1.Replace(tmpRootDir, ""); //轉換成相對路徑
imagesurl2 = imagesurl2.Replace(@"\", @"/");
//imagesurl2 = imagesurl2.Replace(@"Aspx_Uc/", @"");
return imagesurl2;
}
//相對路徑轉換成伺服器本地物理路徑
private string urlconvertorlocal(string imagesurl1)
{
string tmpRootDir = Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString());//獲取程序根目錄
string imagesurl2 = tmpRootDir + imagesurl1.Replace(@"/", @"\"); //轉換成絕對路徑
return imagesurl2;
}
#endregion
3 下載的方法
///
/// 獲取物理地址
///
public static string MapPathFile(string FileName)
{
return HttpContext.Current.Server.MapPath(FileName);
}
///
/// 普通下載
///
/// 文件虛擬路徑
public static bool DownLoadold(string FileName)
{
bool bools = false;
string destFileName = MapPathFile(FileName);
if (File.Exists(destFileName))
{
FileInfo fi = new FileInfo(destFileName);
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.Buffer = false;
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(Path.GetFileName(destFileName), System.Text.Encoding.UTF8));
HttpContext.Current.Response.AppendHeader("Content-Length", fi.Length.ToString());
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.WriteFile(destFileName);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();
bools = true;
}
return bools;
}
public static void ResponseFile(string path, HttpContext context)
{
context = HttpContext.Current;
System.IO.Stream iStream = null;
byte[] buffer = new Byte[10000];
int length;
long dataToRead;
string filename = System.IO.Path.GetFileName(path);
try
{
iStream = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read);
dataToRead = iStream.Length;
context.Response.ContentType = "application/octet-stream";
context.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8));
while (dataToRead > 0)
{
if (context.Response.IsClientConnected)
{
length = iStream.Read(buffer, 0, 10000);
context.Response.OutputStream.Write(buffer, 0, length);
context.Response.Flush();
buffer = new Byte[10000];
dataToRead = dataToRead - length;
}
else
{
dataToRead = -1;
}
}
}
catch (Exception ex)
{
context.Response.Write(ex.Message);
}
finally
{
if (iStream != null)
{
iStream.Close();
}
}
}
public static void ResponseFile(string path, string fileName, HttpContext context)
{
context = HttpContext.Current;
System.IO.Stream iStream = null;
byte[] buffer = new Byte[10000];
int length;
long dataToRead;
try
{
iStream = new System.IO.FileStream(path, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read);
dataToRead = iStream.Length;
context.Response.ContentType = "application/octet-stream";
context.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
while (dataToRead > 0)
{
if (context.Response.IsClientConnected)
{
length = iStream.Read(buffer, 0, 10000);
context.Response.OutputStream.Write(buffer, 0, length);
context.Response.Flush();
buffer = new Byte[10000];
dataToRead = dataToRead - length;
}
else
{
dataToRead = -1;
}
}
}
catch (Exception ex)
{
context.Response.Write(ex.Message);
}
finally
{
if (iStream != null)
{
iStream.Close();
}
}
}
㈥ asp.net 如何將虛擬路徑轉換成物理路徑
MapPath("虛擬路徑")
㈦ asp中如何將物理路徑轉化為虛擬路徑
用Server.MapPath("文件名字")
㈧ 如何把絕對路徑改成虛擬路徑===
1.什麼是絕對路徑
絕對路徑就是你的主頁上的文件或目錄在硬碟上真正的路徑,絕對路徑一般在CGI程序的路徑配置中經常用到,而在製作網頁中實際很少用到。大家不用管它。
2.什麼是相對路徑
顧名思義,相對路徑就是相對於當前文件的路徑。網頁中一般表示路徑使用這個方法。
比如一個文件的路徑是http://xxxxx.home4u.china.com/feel/mine/dark.html,表示dark.html文件是在mine目錄中的。那麼這個頁面中如果有個連接是指向網站首頁index.html的,這個連接就應該這樣表示:../../index.html。 ../ 表示上一級目錄,第一個../表示回到feel目錄,再一個../就表示回到了http://xxxxx.home4u.china.com/也就是根目錄。如果這個dark.html文件中還有一個圖片yyy.gif,是在mine目錄中的images目錄下,那麼,可以看到,dark.html文件與images目錄是同級的,也就是在同一個目錄mine下。那麼,這個圖片的連接地址就應該是:images/yyy.gif。images前面沒有任何字元,表示就在同一個目錄下。
還有一個方法可以讓你不用考慮回到哪個目錄,那就是根目錄表示法。以「/」這個斜杠標記來表示根目錄,其他文件就以這個為參照。比如,上例中連接index.html的連接就可以寫成:/index.html。圖片連接就可以寫成:/feel/mine/images/yyy.gif。
實際上,網站路徑結構就是你硬碟上某個目錄下的路徑結構。象上面圖片的連接,就好比你在本地打開這個圖片時進入目錄的順序,先進入feel目錄,再進入mine和images目錄,然後就找到了yyy.gif。明白了這一點,相信你已經懂得了什麼是相對路徑。
㈨ Server對象的Msppath方法可以將物理路徑轉化為虛擬路徑對不對
你應該是打錯了是MapPath,這個方法可以將虛擬路徑轉為物理路徑
㈩ 程序什麼情況下需要將物理地址轉為虛擬地址
1.首先把虛擬地址拆分成3個部分(低12位, 中10位, 高10位), 換成2進制如下:
-> 0000 0001 1010 1111 0101 0101 0001 1000
按照10, 10, 12的位數重新排列後
-> (頁目錄索引)00 000 00110, (頁表項索引)10 1111 0101, (偏移)0101 0001 1000
換算成十六進制後可以得到如下結果
頁目錄索引 = 6, 頁表項索引 = 0x2f5 , 偏移 = 0x518