2

「_filename.jpg」だけでなく画像「_filename.JPG」を取得するコードを作成するにはどうすればよいですか?

string picUrl = "http://MyServer/" + _filename + ".jpg";            
Image webImage = global::MyProject.Properties.Resources.ImageNotFound1;
try
{
    WebRequest requestPic = WebRequest.Create(picUrl);
    WebResponse responsePic = requestPic.GetResponse();
    webImage = Image.FromStream(responsePic.GetResponseStream());                
}
4

2 に答える 2

2

大文字と小文字の区別はサーバーによって適用されます。クライアント側のコードがサーバーの動作に影響を与えることはありません。HTTPサーバーがパスの正確な大文字小文字の区別を必要とすることは珍しいですが、Unix / Linuxベースのサーバーでは簡単に取得できる動作であり、 UriRFCでこのように説明されています。

サーバーで大文字と小文字が区別される場合のオプション:

  • ファイルの正確な名前を尋ねる(おそらくサーバーは正確なファイル名を取得する方法を提供します。つまり、HTMLページを解析することによって)
  • 名前の大文字と小文字を事前に知っておく(つまり、サーバーで小文字の名前のみを使用する)。
  • 名前の文字ごとに大文字と小文字の組み合わせの一部またはすべてを生成します(つまり、.jpg / .JPGなどの既知の大文字と小文字を試してください)が、これには非常に時間がかかる場合があります。
  • 大文字と小文字を区別しない方法でファイル名を受け入れるようにサーバーを再構成します
  • サーバーが大文字と小文字を区別しないファイル取得を行うための何らかのヒントをサポートしているかどうかを確認します(可能性は低いですが...)
于 2013-03-11T01:52:35.630 に答える
1

Alexei Levenkovの提案の1つと同様に、モジュール「mod_speling」を有効にすることで、Apacheサーバーで大文字と小文字を区別しないようにしました。

リンクは次のとおりです http://www.leccionespracticas.com/informatica-sistemas-y-servidores/apache-case-sensitive-to-case-insensitive-and-alias-solved/

基になるファイルシステムでは大文字と小文字が区別されるため、Apacheは*nixシステムで大文字と小文字を区別します。これにより、大文字と小文字を区別しないシステムから持ち込まれたサイトで問題が発生する可能性があります。apacheモジュールcheck_spelingを使用すると、その感度を比較的簡単に取り除くことができます(面白い名前ですね)。また、可能であれば、タイプミスしたURLを再マッピングし、index.htmを適切なindex.htmlにマッピングします。

これはUbuntu/Debianシステムの手順です。

  1. コマンドラインからsudosuと入力して、root権限を取得します。
  2. nano /etc/apache2/mods-available/speling.conf
  3. CheckSpellingと入力し、ctrl-x、yを押して終了し、ファイルを保存します。
  4. a2enmodと入力し、spelingしてEnterキーを押します。
  5. /etc/init.d/apache2 reloadと入力して、apacheをリロードします。
  6. それをテストするためにURLをタイプミスします。
于 2013-03-11T02:45:26.130 に答える