我正在使用CakePHP 2.0.4,PHP 5.3.1,Apache 2.2.14。CakePHP名稱中包含特殊字符的圖像不會顯示
例如:文件名是F#7m7〜1.gif。它確實存在,路徑和文件名是正確的。
打印HTML標記之前,我進行編碼,通過使用進行urlencode()和標籤是這樣:
<img src="/chord/img/chords/F%2523m7~1.gif" alt="F#m7">
但圖像沒有被加載。 ('Chord'是一個CakePHP插件)
我也嘗試直接在瀏覽器上加載它,http://myapp.localhost/chord/img/chords/F%2523m7~1.gif但我得到的是:「丟失控制器錯誤:找不到Chord.ImgController。
一切正常工作與該文件作爲A〜1.gif,但它與文件名brokes如F#M〜1.gif,B(7)〜1.gif等
寄託都被工作確定在純PHP編碼版本中。現在,它不適用於CakePHP。
有沒有人有線索?
最簡單的解決方法是不允許文件名中包含不常用的字符。最好堅持[a-zA-Z0-9 \ ._-] – GordonM 2012-01-01 18:41:35
GordonM,我相信你是對的。但是因爲它是在純php版本中工作的,所以我意識到在CakePHP中也可以工作。 順便說一句,圖像文件名是自動生成的,然後我可以重構引擎生成這種方式。但我真的很想知道爲什麼不行。如果我放棄的話,我會讓你知道!呵呵 – colares 2012-01-01 20:55:49
恩,謝謝你的回覆,夥計們。我選擇重做圖像的名稱(它的腳本),這次友好。爲了記錄,我發現這個問題的這個不錯的鏈接:http://playground.zaplabs.com/sandbox/qa/stackexchange/serverfault/295664/。但我認爲這是我的情況的一個不必要的開銷。 – colares 2012-01-02 23:46:10