从服务器获取图像而忽略文件的区分大小写

时间:2013-03-11 01:36:21

标签: c# winforms ubuntu-12.04 webrequest case-sensitive

如何使我的代码获取图像“_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());                
}

2 个答案:

答案 0 :(得分:2)

服务器强制执行区分大小写 - 您的客户端代码不会影响服务器的行为。 HTTP服务器需要精确的路径封装,但基于Unix / Linux的服务器很容易获得,并在Uri RFC中以这种方式描述。

如果服务器区分大小写,则为您的选项:

  • 询问文件的确切名称(可能服务器提供了获取确切文件名的方法。即通过解析一些HTML页面)
  • 事先知道名称的大小写(即只在服务器上使用小写名称)。
  • 为名称中的每个字符生成一些/所有案例组合(即尝试像.jpg / .JPG这样的已知案例),但这可能需要花费很长时间。
  • 将服务器重新配置为以非大小写方式接受文件名
  • 查看服务器是否支持某种提示来进行不区分大小写的文件检索(不太可能,但是......)

答案 1 :(得分:1)

像Alexei Levenkov的建议一样,我通过启用模块“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. 在命令行中输入sudo su以获取root权限。
  2. nano /etc/apache2/mods-available/speling.conf
  3. 键入CheckSpelling并按ctrl-x,y退出并保存文件。
  4. 键入a2enmod然后拼写并按Enter键。
  5. 键入/etc/init.d/apache2重新加载以重新加载apache。
  6. 输入一个网址进行测试。