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已经从 PHP 进行了 urlencoded,所以它按原样传递。test1test2

于 2013-09-06T23:13:46.503 回答