【问题标题】:cakephp place files outside webrootcakephp 将文件放在 webroot 之外
【发布时间】:2011-09-19 20:22:09
【问题描述】:

我想知道 CakePHP 是否可以在不使用媒体视图的情况下将文件(例如 pdf)放置在 webroot 目录之外(我已经尝试过,它仅在您想让文件可用于 下载,但如果您只想将这些文件链接到其他内容(例如来自 Flash 应用程序),则不需要)。

有人知道怎么做吗?

【问题讨论】:

    标签: file cakephp


    【解决方案1】:

    只要你有写权限,你可以将文件放在任何你想要的地方,只要使用普通的 PHP: http://php.net/manual/en/function.copy.phphttp://php.net/manual/en/function.move-uploaded-file.php

    当您希望这些文件可供直接下载时,您可以将文件放在 webroot 中。

    编辑:我想我知道您的意思:如果您希望它可用于 Flash 应用程序(或下载,或其他任何东西),请将其放在 webroot 中。为什么你不想把它们放在 webroot 中?

    编辑:使用媒体视图,您需要一种方法来检查请求是否来自 Flash 播放器或不允许发送文件。

    【讨论】:

    • 你能给我举个例子吗?假设在我的 app 文件夹中有一个名为 files 的文件夹,位于 webroot 的同一级别。如何从视图中链接该文件夹内名为 song.mp3 的文件?
    • 嗯,主要原因是因为我想从 Flash 播放器播放一些 mp3 文件,而不让用户下载它们。问题是我正在使用的播放器(我无法更改)使用 embed 标签中的 flashVars 作为参数接收歌曲的路径,所以我'正在尝试将文件放在其他地方,这样用户就无法通过 查看源代码 点击查看他们的路径...
    • 他们不需要查看源代码。有一个 Firefox 插件可以轻松捕获您的 mp3。如果您希望他们无法下载该文件,我建议您找到另一种方法(而不是使用该 Flash 播放器)。不过,要让它正常工作是相当复杂的。
    • 是的,我知道他们即使不知道路径也能找到下载它们的方法,但这并不像在 HTML 上看到路径那么容易......所以基本上没有办法做我的事情想要在 CakePHP 中?我敢肯定一定有办法......
    • 我尝试使用媒体视图但无法正常工作...如何检查请求是否来自 Flash 电影?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2011-07-19
    • 1970-01-01
    相关资源
    最近更新 更多