0

スクリプト名を含まずにサーバー名+フォルダー名を取得する方法は?

string filePath = Request.QueryString.Get("filepath");

string serverPath = Request.ServerVariables["SERVER_NAME"] + "/";
string fullUrl = "http://" + serverPath + filePath;
Response.Write(fullUrl);

上記のコードにはフォルダー名がありません。

4

2 に答える 2

0

HTTPはフォルダとは何か、ファイルとは何かに対して「ブラインド」であるため、これを完全に行うことはできません。

http://www.acme.com/products/view.aspなどのURLに精通している可能性がありますが、完全に有効なURLはhttp://www.acme.com/products/viewである可能性もあるため、できません。フォルダとファイル名を区別します。

あなたができること、ただし:

  1. アプリケーションを知っていて、ファイルのみを実行することを知っている(たとえば、MVCなどの論理的なコードを実行するルーティングメカニズムとは対照的)
  2. 各ファイルには拡張子が含まれています

パス文字列を自分で解析し、パスの最後にあるfile.extパターンを探すことです。

于 2013-01-18T04:44:45.603 に答える
0

このページでは、HttpRequestの一部がどのように機能するかを示します。Request.FilePath次のように、を取得して最後のセグメントを削除できます。

string directory = Request.FilePath.Remove(Request.FilePath.LastIndexOf('/'));
于 2013-01-18T05:43:28.120 に答える