1 つの 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
を送信したくないため、拡張子 (.jpg、.pdf など) を含める必要があります。fileName
fileName
StaticFile
どうにかしてカスタム ルートのハンドラを無効にすることはできますか?
どんな助けでも大歓迎です!