.net mvc中实现伪地址的实现问题,求教?

老张一笑 2014-09-01 09:27:37
本来是有个web网站项目,想改成mvc学习下.
有个文件夹是放图片的 如: admin/images/1.jpg
想实现一种伪路径,就是不想用户知道我具体路径是在哪个位置.
之前用过url重写实现过,
mvc觉得用路由是可以实现的,mvc认识浅薄,不知道怎么百度,求教.
...全文
129 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqm05 2014-09-03
  • 打赏
  • 举报
回复
效果图:

路由规则可以随意定制,ReWriteUrl可以细分,图片名称也可以重新定义规则,总之能够通过一个算法映射到原来的图片真实地址即可:
routes.MapRoute(
"ImageRoute", // 路由名称
"ReWriteUrl/{name}", // 带有参数的 URL
new { controller = "Admin", action = "Images", name = UrlParameter.Optional } // 参数默认值
, new { name = @"[\w]+\.(jpg|gif|png)" }
);
qqm05 2014-09-03
  • 打赏
  • 举报
回复

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.IO;

namespace MvcApplication1.Controllers
{
    public class AdminController : Controller
    {
        //
        // GET: /Admin/

        public FileContentResult Images(string name)
        {
            Response.Write(name);
            string imagepath = "/admin/images/" + name;
            imagepath = Server.MapPath(imagepath);
            //根据图片文件的路径使用文件流打开,并保存为byte[]     
            FileStream fs = new FileStream(imagepath, FileMode.Open);
            byte[] byData = new byte[fs.Length];
            fs.Read(byData, 0, byData.Length);
            fs.Close();
            
            Response.Clear();
            return new FileContentResult(byData, "image/jpeg");
        }
 
    }
}
qqm05 2014-09-03
  • 打赏
  • 举报
回复

            routes.MapRoute(
                "ImageRoute", // 路由名称
                "ReWriteUrl/{name}", // 带有参数的 URL
                new { controller = "Admin", action = "Images", name = UrlParameter.Optional } // 参数默认值
                , new { name = @"[\w]+\.(jpg|gif|png)" }
            );
老张一笑 2014-09-03
  • 打赏
  • 举报
回复
怎么回事呢,发我的贴有问题吗?
老张一笑 2014-09-02
  • 打赏
  • 举报
回复
再次求解..
老张一笑 2014-09-02
  • 打赏
  • 举报
回复
好清静,刷新一下.

62,046

社区成员

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

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

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

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