【问题标题】:%1C before file name is causing 404 error文件名之前的 %1C 导致 404 错误
【发布时间】:2016-02-13 15:40:12
【问题描述】:

我正在尝试显示图像(例如 hello.jpg),图像的路径是 100% 真实的,但它一直对我说 404。

<li><img src="assets/img/uzivatelske_foto/hello.jpg"></li>

于是我尝试将路径粘贴到浏览器中,并将网址更改为:

/assets/img/uzivatelske_foto/%1Chello.jpg

它仍然是 404。但后来我尝试删除 URL 中的那个“%1C”,它成功了! 当我想在 img 标签中加载它时,你知道如何摆脱它吗? 谢谢;)

【问题讨论】:

  • 我很困惑:我看不出两个显示的文件名之间有多少相等...
  • @arkascha 哦,我明白了,对不起。本来应该是这样的---> /assets/img/uzivatelske_foto/%1Chello.jpg
  • 我不太明白这个问题。是否存在破坏 url 的源中的不可见控制字符的问题?您是否尝试过删除该行并重写它(手动,不是复制粘贴)?
  • 啊,好的,感谢您的纠正。在这种情况下,这看起来像在该 img 标记的属性中编码的 URL 可能 看起来 正确,具体取决于您如何(通过使用什么工具)查看它。但它肯定 is 不正确,这意味着其中有一个不可见的字符(一个空格,但不是空格或换行符),它会触发所描述的效果。如果您真的想可靠地查看确切那里的编码,那么这样做的唯一方法是使用hexeditor。仅在某些编辑器或浏览器视图中查看字符串是可靠的。
  • %1C 将是 File Separator 控制字符 - 所以你的代码中有它,但它是一个“不可见”的字符。只需在您的代码中重新输入完​​整的 URL,问题就会消失。

标签: html file url utf-8 src


【解决方案1】:

我添加到我的 PHP 代码中

preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $filePath);

这将返回一个没有那个烦人的空格的字符串。

【讨论】:

    猜你喜欢
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多