0

ユーザーがアップロードしたファイルへの Web URL を生成し、それらをシリアライズしたいと考えています。コントローラーでは、次のようなことができます。

$myURL = Router::url('/', TRUE) . 'files' . DS . $relationName . DS . 'attachment' . DS . $attachmentData['dir'] . $attachmentData['attachment'];

ただし、ファイル名にスペースが含まれている場合はエスケープされません。

ビューで html ヘルパーを使用できることはわかっていますが、これは、コントローラーからシリアライズ マジックを使用できないことを意味します。また、コントローラーまたはモデルで HTML ヘルパーを使用してケーキを壊したくありません。

コントローラーから webroot 内のファイルへの web URL ( http://example.c.../someimage.jpg ) を作成する方法はありますか?

4

1 に答える 1

0

渡された次のテスト変数を試しましたserialize

$test = 'http://my.url.com/test.jpg';
$test1 = 'http://my.url.com/test file.jpg';
$test2 = urlencode('http://my.url.com/test file.jpg');

結果は次のとおりです。

"test": "http:\/\/my.url.com\/test.jpg",
"test1": "http:\/\/my.url.com\/test file.jpg",
"test2": "http%3A%2F%2Fmy.url.com%2Ftest+file.jpg"

URLは適切にJSONエンコードされてtestおりtest1test2すでにPHPからURLエンコードされているため、そのまま渡されます。

于 2013-09-06T23:13:46.503 に答える