- 浏览: 78672 次
文章分类
- 全部博客 (48)
- AOP (0)
- ASP.NET (1)
- C# (0)
- Community Server (0)
- Database (0)
- Design Pattern (3)
- JAVA (1)
- JavaScript (1)
- Linux (1)
- O/R Mapping (0)
- OO (3)
- SQL Server (1)
- VB.NET (0)
- Visual Studio 2005 (2)
- Windows (2)
- WPF (0)
- XML/XSLT (0)
- 常用工具类 (0)
- 人生感悟 (0)
- 算法 (0)
- 转载 (5)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (3)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (15)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (2)
- [网站分类]4.其他技术区 (4)
- [网站分类]5.企业信息化 (0)
- [网站分类]6.读书心得区(技术书籍阅读心得、书籍推荐) (0)
- [网站分类]7.提问区(.NET技术方面的提问) (0)
- [网站分类]8.技术转载区(.NET技术文章转载, 请注明原文出处) (1)
- [网站分类]9.求职招聘区(个人求职、企业招聘) (0)
- [网站分类]Dottext区 (0)
- [网站分类]GIS技术 (0)
- [网站分类]IT英才专区(IT职场交流) (0)
- [网站分类]SharePoint (0)
- [网站分类]博客园.NET俱乐部(俱乐部组织与活动方面的文章) (0)
- [网站分类]软件发布区(发布自己开发的代码、软件) (0)
- [网站分类]网站管理区(网站管理方面的疑问、建议、意见, 寻求管理员帮助) (0)
- [网站分类]业界新闻 (0)
最新评论
-
xjw1987524:
这个问题我是弄啦很久,我也试过反编译,不知道为什么就是不成功; ...
支持中文参数的 jspSmartUpload
很经常使用到的一个功能,但在在网上却一直没有找到相关的解决方法,今天借着项目应用到的机会写了两个将绝对路径转换为虚拟路径封装好的方法
第二个方法显然是从第一个方法中的前部分抽取出来的,所以懒得去添加相关注释 :P
将虚拟路径转绝对路就没什么好说的了, HttpRequest.MapPath 方法专门干这事
将Web站点下的绝对路径转换为相对于指定页面的虚拟路径
<!---->/**//// <summary>
/// 将Web站点下的绝对路径转换为相对于指定页面的虚拟路径
/// </summary>
/// <param name="page">当前页面指针,一般为this</param>
/// <param name="specifiedPath">绝对路径</param>
/// <returns>虚拟路径, 型如: ../../</returns>
public static string ConvertSpecifiedPathToRelativePathForPage(Page page, string specifiedPath)
{
// 根目录虚拟路径
string virtualPath = page.Request.ApplicationPath;
// 根目录绝对路径
string pathRooted = HostingEnvironment.MapPath(virtualPath);
// 页面虚拟路径
string pageVirtualPath = page.Request.Path;
if (!Path.IsPathRooted(specifiedPath) || specifiedPath.IndexOf(pathRooted) == -1)
{
throw new Exception(string.Format("\"{0}\"是虚拟路径而不是绝对路径!", specifiedPath));
}
// 转换成相对路径
//(测试发现,pathRooted 在 VS2005 自带的服务器跟在IIS下根目录或者虚拟目录运行似乎不一样,
// 有此地方后面会加"\", 有些则不会, 为保险起见判断一下)
if (pathRooted.Substring(pathRooted.Length - 1, 1) == "\\")
{
specifiedPath = specifiedPath.Replace(pathRooted, "/");
}
else
{
specifiedPath = specifiedPath.Replace(pathRooted, "");
}
string relativePath = specifiedPath.Replace("\\", "/");
string[] pageNodes = pageVirtualPath.Split('/');
// 减去最后一个页面和前面一个 "" 值
int pageNodesCount = pageNodes.Length - 2;
for (int i = 0; i < pageNodesCount; i++)
{
relativePath = "/.." + relativePath;
}
if (pageNodesCount > 0)
{
// 如果存在 ".." , 则把最前面的 "/" 去掉
relativePath = relativePath.Substring(1, relativePath.Length - 1);
}
return relativePath;
}
<!---->/**//// <summary>
/// 将Web站点下的绝对路径转换为相对于指定页面的虚拟路径
/// </summary>
/// <param name="page">当前页面指针,一般为this</param>
/// <param name="specifiedPath">绝对路径</param>
/// <returns>虚拟路径, 型如: ../../</returns>
public static string ConvertSpecifiedPathToRelativePathForPage(Page page, string specifiedPath)
{
// 根目录虚拟路径
string virtualPath = page.Request.ApplicationPath;
// 根目录绝对路径
string pathRooted = HostingEnvironment.MapPath(virtualPath);
// 页面虚拟路径
string pageVirtualPath = page.Request.Path;
if (!Path.IsPathRooted(specifiedPath) || specifiedPath.IndexOf(pathRooted) == -1)
{
throw new Exception(string.Format("\"{0}\"是虚拟路径而不是绝对路径!", specifiedPath));
}
// 转换成相对路径
//(测试发现,pathRooted 在 VS2005 自带的服务器跟在IIS下根目录或者虚拟目录运行似乎不一样,
// 有此地方后面会加"\", 有些则不会, 为保险起见判断一下)
if (pathRooted.Substring(pathRooted.Length - 1, 1) == "\\")
{
specifiedPath = specifiedPath.Replace(pathRooted, "/");
}
else
{
specifiedPath = specifiedPath.Replace(pathRooted, "");
}
string relativePath = specifiedPath.Replace("\\", "/");
string[] pageNodes = pageVirtualPath.Split('/');
// 减去最后一个页面和前面一个 "" 值
int pageNodesCount = pageNodes.Length - 2;
for (int i = 0; i < pageNodesCount; i++)
{
relativePath = "/.." + relativePath;
}
if (pageNodesCount > 0)
{
// 如果存在 ".." , 则把最前面的 "/" 去掉
relativePath = relativePath.Substring(1, relativePath.Length - 1);
}
return relativePath;
}
第二个方法显然是从第一个方法中的前部分抽取出来的,所以懒得去添加相关注释 :P
将Web站点下的绝对路径转换为虚拟路径
<!---->/**//// <summary>
/// 将Web站点下的绝对路径转换为虚拟路径
/// 注:非Web站点下的则不转换
/// </summary>
/// <param name="specifiedPath">绝对路径</param>
/// <returns>虚拟路径, 型如: ~/</returns>
public static string ConvertSpecifiedPathToRelativePath(string specifiedPath)
{
string pathRooted = HostingEnvironment.MapPath("~/");
if (!Path.IsPathRooted(specifiedPath) || specifiedPath.IndexOf(pathRooted) == -1)
{
return specifiedPath;
}
if (pathRooted.Substring(pathRooted.Length - 1, 1) == "\\")
{
specifiedPath = specifiedPath.Replace(pathRooted, "~/");
}
else
{
specifiedPath = specifiedPath.Replace(pathRooted, "~");
}
string relativePath = specifiedPath.Replace("\\", "/");
return relativePath;
}
<!---->/**//// <summary>
/// 将Web站点下的绝对路径转换为虚拟路径
/// 注:非Web站点下的则不转换
/// </summary>
/// <param name="specifiedPath">绝对路径</param>
/// <returns>虚拟路径, 型如: ~/</returns>
public static string ConvertSpecifiedPathToRelativePath(string specifiedPath)
{
string pathRooted = HostingEnvironment.MapPath("~/");
if (!Path.IsPathRooted(specifiedPath) || specifiedPath.IndexOf(pathRooted) == -1)
{
return specifiedPath;
}
if (pathRooted.Substring(pathRooted.Length - 1, 1) == "\\")
{
specifiedPath = specifiedPath.Replace(pathRooted, "~/");
}
else
{
specifiedPath = specifiedPath.Replace(pathRooted, "~");
}
string relativePath = specifiedPath.Replace("\\", "/");
return relativePath;
}
将虚拟路径转绝对路就没什么好说的了, HttpRequest.MapPath 方法专门干这事
发表评论
-
获取某目录下的所有文件(包括子目录下文件)的数量(C#)
2005-11-04 17:27 3992以前写过一个通过计算目录遍历所有文件和子目录的方法来获得某目录 ... -
Visual Studio 2005 试用笔记
2005-11-06 21:36 936今天开始用上了 VS 2005 ... -
C#面向对象设计模式纵横谈(2):Singleton 单件(创建型模式) 笔记
2005-11-09 22:52 1314(很喜欢李建忠老师的这个讲座,可惜暂时没更多的了,继续关注 M ... -
利用视图管理器高效编写 SQL SELECT 语句
2006-02-19 13:27 952献给初学者,老鸟别扔砖头 编写 ... -
比较高效地实现从两个不同数组中提取相同部分组成新的数组(只支持Int类型) [C#]
2006-05-13 22:17 4043有时候我们需要从两个不同数组中提取出相同的部分 ... -
基于 .NET 2.0 System.Net.Mail namespace 的邮件发送组件
2006-05-17 13:11 1886一个基于 .NET 2.0 System.Net.Mail n ... -
从 CCS 1.1 升级到 CS 2.0 所遇到的问题和部分解决方法
2006-06-16 12:58 826整理了一下,记录在这 ... -
.NET Enum The Next Level
2006-08-20 17:15 1169声明:本文内容出自:http://www.codeprojec ... -
C# 中实现随机时间的获取
2006-09-07 17:31 1368原理其实非常简单,取出两个时间差的秒数,再在0到该秒数 ... -
NHibernate 实体类中重写 Equals() 和 GetHashCode()
2006-09-17 17:08 1548在正常的对象操作中,当两个对象都是通过 new ... -
初识 db4o
2006-10-25 21:41 942今天早上收到 IBM developerWork ... -
Spring.Net AOP 学习之旅: 使用 Throws Advice 处理异常
2006-10-30 21:12 4337写在前头:本文示例和部分文字来自《Sprin ... -
.NET 1.1 下不使用 System.Web.Mail.SmtpMail 发送邮件的其它选择
2006-12-22 20:35 1245最近工作原因需要维护 ASP.NET 1.1 的程 ... -
.NET 中的 委托与事件
2006-12-27 10:10 1932一、什么是委托 ...
相关推荐
在IT行业中,Apache HTTP服务器是广泛应用的开源Web服务器,它提供了强大的功能,包括虚拟路径配置和伪静态处理。本文将详细介绍如何配置Apache以开启虚拟路径(也称为虚拟主机)和实现伪静态设置。 首先,虚拟路径...
在上述代码中,`HttpContext.Current`获取当前的HTTP上下文,`Server.MapPath`方法则将虚拟路径转换为物理路径。请注意,这个方法仅在ASP.NET环境中可用,因为需要依赖HTTP上下文。如果在非ASP.NET环境中,如控制台...
在一个web服务器上,虚拟路径将物理上分离的各文件组合在一起,放在同一个站点路径上,在应用服务器上,每个应用定位于其自己的虚拟路径上,实际上相互之间有着完美地分离。getRealPath()方法JSP servlet API提供...
- **含义**:`HttpContext.Current.Server.MapPath`可以将相对路径转换成绝对路径。 - **示例**:假设我们需要获取当前Web应用下的某个文件夹(如`app_code`)的绝对路径,可以使用以下代码: ```csharp string ...
- **虚拟目录**:允许在同一Web站点下创建多个逻辑目录,实际指向不同的物理位置。 - **DNS(Domain Name System)**:负责将域名转换为IP地址的系统,实现网络中的名称解析。 - **端口号**:每个网络服务都绑定于...
当用户通过浏览器访问一个虚拟目录时,Web服务器会将这个请求解析,并将其转换为实际存储在服务器硬盘上的物理路径。这样做可以避免因文件实际位置变动而影响网站的正常运行,同时也能实现多个网站共享同一资源的...
2. **创建虚拟目录**:虚拟目录允许将不同物理位置的文件映射为同一Web站点下的路径。这可以通过在IIS管理器中右键点击站点,选择“新建”->“虚拟目录”,设置别名和目录路径来完成。 3. **定义默认文档**:IIS可以...
2. 使用DNS(域名系统)将主机名转换为IP地址。 3. 通过TCP/IP协议与服务器建立连接,向指定端口发送HTTP请求。 4. 服务器接收到请求后,处理请求并返回相应的HTML内容或其他资源。 服务器端可能提供了多种服务,如...
7. **创建IIS虚拟目录**:在IIS管理器中,为目标文件夹创建虚拟目录,具体步骤包括打开管理器,展开站点,右击默认站点,添加虚拟目录,设定别名和物理路径,最后将虚拟目录转换为应用程序。 8. **ASP.NET开发中的...
ASP.NET提供了多种方式来处理路径问题,如Server.MapPath()方法可以将虚拟路径转换为物理路径,而Url.Content()方法则可以用于生成相对于应用程序根目录的URL,这些都是在编写ASP.NET代码时应考虑的最佳实践。...
它将虚拟路径转换为服务器上的实际文件路径,这对于访问静态资源或文件操作非常方便,但要注意,不是所有服务器环境都支持此功能。 除此之外,还有其他与URL相关的JSP操作: 1. 获取URL参数:通过 `request....
虚拟IIS允许在一个物理服务器上创建多个独立的、互不干扰的Web站点,每个站点可以有不同的域名、IP地址或者端口号,从而实现资源的有效管理和隔离。 一、虚拟IIS的基本概念 1. 虚拟主机:在一台物理服务器上通过...
### 构建虚拟Web主机知识点总结 #### 一、编译安装Apache服务器 **知识点概述:** 本章节主要介绍如何从源码编译并安装Apache HTTP Server,这是一套广泛使用的开源Web服务器软件。 **详细步骤:** 1. **解压缩...
为便于老师教学,我们将为选用本教材的任课老师免费提供电子教案。需要者请登录华章网站(http://www.hzbook.com)免费下载,或通过电子邮件与我们联系(wufox@126.com)。 作 者 2007年1月 于武汉...
此外,还可以创建虚拟目录,比如将“E:\All”设置为“test”虚拟目录,使得通过“192.168.0.1/test”即可访问这些文件。同时,指定默认文档名(如“Index.htm”),以便浏览器自动加载首页面。 如果需要创建多个Web...
若要查找`file1.txt`(位于站点根路径下)和`file2.txt`(位于虚拟路径下)的真实路径,可以这样使用`getRealPath()`方法: - `getRealPath("/file1.txt")`应该返回类似`C:\site\site_root\file1.txt`的结果。 - `...