㈠ 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