gpt4 book ai didi

具有多个子目录的文件的 ASP.NET MVC 路由

转载 作者:行者123 更新时间:2023-12-04 20:58:11 24 4
gpt4 key购买 nike

我需要设置一个文件处理程序来路由多个子目录,比如 tihs;

http://localhost/images/7/99/786936215595.jpg

我试着把它放在 global.asax 文件中;
 routes.Add(
"ImageRoute",
new Route("covers/{filepath}/{filename}",
new ImageRouteHandler()));

我正在使用在此 Question 中找到的 ImageHandler ,如果您只有一个子目录(即“/images/15/786936215595.jpg”),则效果很好,但当您有多个目录时会失败。

我尝试设置一个通配符,但没有奏效(即 'new Route("covers/{filepath}/*/{filename}"')

这是从大型 NAS 提供图像(想想大约 300 万张图像),所以我不能只是移动文件。

谢谢!

最佳答案

好吧,经过大量的玩耍和 google fu,我找到了如何使它工作。

像这样更改路由定义;

 routes.Add(
"ImageRoute",
new Route("images/{*filepath}",
new ImageRouteHandler()));

然后把它放在默认的 MapRoute 之后。重要的部分是文件路径前的“*”,它告诉 MVC 将其后的任何内容作为文件路径 RouteData 的一部分发送。因此,在 GetHttpHandler() 方法中,我可以使用它获取完整路径;
string fp = requestContext.RouteData.Values["filepath"] as string;

哇!

关于具有多个子目录的文件的 ASP.NET MVC 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3513754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com