2017-06-28 6 views
1

.NET Core Web APIでは、(承認目的のために)ファイルにアクセスするためのコントローラを作成しました。.NET Core Web APIコントローラへの複数のルート

コントローラは単にパスを取得し、パスでファイルを読み取り、ブラウザが表示できるようにファイル(イメージ)を返します。例えば、私はファイル名のみを使用する場合はすべてが正常に動作します

[HttpGet("{path}", Name = "GetFile")] 
public IActionResult GetFile(string path) 
{ 
    // read the file & content type 
    return File(f, contentType); 
}

のようにコントローラが見え

(ファイルがコントローラです)、

http://localhost:61261/api/v1/Files/test.png

サブディレクトリを使用すると、ルーティングは404で失敗し、コントローラメソッドは呼び出されません。例えば、

http://localhost:61261/api/v1/Files/subdirectory/test.png

2番目の例でパス変数が "サブディレクトリ/ test.png"になるルーティングはどうすればできますか?

編集:ファイルをアップロード/ダウンロードするときにサブディレクトリが出てきたりできるので、何らかのワイルドカードを探しています。彼らは、認証/認可を使用する方法はありません(公開され、ファイルがwwwwrootではないので と静的ファイルを使用しては可能ではありません

答えて

0

が可能重複した質問から、関連する情報を抽出するには:。

追加しますパスの前のアスタリスクが問題を解決しました

[HttpGet("{*path}", Name = "GetFile")]