我正在为一个 B2B 应用程序构建一个简单的 CMS。用户可以上传/浏览图像,但这些图像存储在 IIS 之外(我的应用程序位于驱动器 C,图像存储在驱动器 D)。
我的计划是为页面文件创建一个自定义路由,然后简单地使用加载图像FileController
文件控制器:
public FilePathResult PageFiles(string fileName)
{
var dir = Server.MapPath("/some_protected_area/gallery");
var path = Path.Combine(dir, fileName);
return File(path, "image/jpg");
}
自定义路线:
routes.MapRoute(
null,
"Files/PageFiles/{fileName}",
new { controller = "File", action = "PageFiles", fileName = UrlParameter.Optional },
new[] { "DemoApp.Web.Controllers" }
);
当我访问时,http://localhost:58891/Files/PageFiles/image-1.jpg
我得到 404。
详细错误信息:
Modeule: IIS Web Core
Notification: MapRequestHandler
Handler: StaticFile
Error code: 0x80070002
当我访问时:http://localhost:58891/Files/PageFiles?fileName=image-1.jpg
一切正常,但我不想发送fileName
查询字符串,并且fileName
必须包含扩展名(.jpg、.pdf 等)
我可以以某种方式禁用StaticFile
自定义路由的处理程序吗?
任何帮助将不胜感激!