0

CakePHP 2.0.4、PHP 5.3.1、Apache 2.2.14 を使用しています。

例: ファイル名は 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 でも、「Missing Controller Error: Chord.ImgController could not be found. ."

A~1.gif のファイルではすべて正常に動作しますが、F#m~1.gif、B(7)~1.gif などのファイル名では機能しません。

純粋なPHPコード化されたバージョンでは、すべてが正常に機能していました。現在、CakePHP では機能していません。

手がかりを持っている人はいますか?

4

1 に答える 1

0

あなたはそれを二重にエンコードしているようです。正しい urlencodeF#7m7~1.gifF%237m7~1.gifではなくF%2523m7~1.gifです。それらの1つを削除するだけです。

Missing Controller エラーは、サーバー上にそのようなファイルがないため、Cake は Chord プラグイン内で ImgController を呼び出そうとしていると判断します。http://myapp.localhost/chord/img/chords/F%237m7~1.gifを試してみてください。うまくいくはずです。

とにかく、@GordonM が指摘したように、ファイル名には通常の文字を使用するのが最善です。

于 2012-01-01T20:06:10.090 に答える