如何获取绝对路径的图片显示?

翠花琳 2010-06-03 05:15:56
我想在asp.net中做一个图片的现实,图片不在项目文件夹下,存放图片的绝对路径和项目的路径好不相干!各位,请问如何实现,望提供详细代码!
...全文
1680 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
multi_server 2010-06-03
  • 打赏
  • 举报
回复
如果是Linux,我会帮你搞定。如果是windows ,你创建个快捷方式到项目下吧,O(∩_∩)O~
polarissky 2010-06-03
  • 打赏
  • 举报
回复
同意17楼的。要不,把图片存数据库吧
xrongzhen 2010-06-03
  • 打赏
  • 举报
回复
网站在部署在C盘,图片在D盘的话,怎么转化也不行啊

至少在网站目录下,才存在转化,要不根本就没意义啊。
wuyq11 2010-06-03
  • 打赏
  • 举报
回复
string urlconvertor(string path)
{
string r= Server.MapPath(System.Web.HttpContext.Current.Request.ApplicationPath.ToString());
string path2= path.Replace(r, "");
path2= path2.Replace(@"\", @"/");
return path2;
}
使用相对路径Page.ResolveUrl
newdigitime 2010-06-03
  • 打赏
  • 举报
回复
还是建立虚拟目录吧.
翠花琳 2010-06-03
  • 打赏
  • 举报
回复
哇!没有反应了!
翠花琳 2010-06-03
  • 打赏
  • 举报
回复
其实我就想知道有什么样的解决方案能办到!
T_long 2010-06-03
  • 打赏
  • 举报
回复
只要你那个路径哪儿又图片,读出来就行
还是别用绝对 的
翠花琳 2010-06-03
  • 打赏
  • 举报
回复
页面是:<asp:Image ID="Image1" runat="server"/>
翠花琳 2010-06-03
  • 打赏
  • 举报
回复
呵呵,其实我就想知道如何把绝对路径转换成相对路径,然后显示在页面上,代码如下:
protected void Page_Load(object sender, EventArgs e)
{

//Image1.ImageUrl = ConvertSpecifiedPathToRelativePath(this,Server.MapPath("/")+"E:/domeimg/129200104593071363.jpg");
}
public static string ConvertSpecifiedPathToRelativePath(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;

}
翠花琳 2010-06-03
  • 打赏
  • 举报
回复
文件我设了共享!
cfesc9 2010-06-03
  • 打赏
  • 举报
回复
俺没有代码,既然想实现,就要学着自己动手呀!问下楼主“一个图片的实现”是嘛意思呀?如果是显示,你就得有路径吧?不论是相对的还是绝对的,当然相对的也可以转成绝对的。如果对图片进行操作,好像还得把图片读入内存将其进行相应操作再将它存到某处或显在某处,如验证码就是不存的。只是显示出来。
不知道对楼主有没有启发,如有不对之处,请指证,谢谢~
翠花琳 2010-06-03
  • 打赏
  • 举报
回复
忘记了说一个条件,我的测试是在本机上进行的!
wzg0319 2010-06-03
  • 打赏
  • 举报
回复
是在同一台服务器上吗?如果图片很多的话,可以考虑为图片做个专门的服务器,指定一个域名,如果很小的话,直接把他COPY到项目里面来
IHandler 2010-06-03
  • 打赏
  • 举报
回复
不在站点目录下,远程用户能有访问权限吗?
翠花琳 2010-06-03
  • 打赏
  • 举报
回复
希望高手出现!
BaoShiqiang 2010-06-03
  • 打赏
  • 举报
回复
帮顶
翠花琳 2010-06-03
  • 打赏
  • 举报
回复
自己顶一下
zhangguofang1129 2010-06-03
  • 打赏
  • 举报
回复
支持一下

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧