CakePHP如何组合流程步骤
我正在开发一个允许用户下载文件的系统,但是如果他们下载了一个文件,我希望将此操作记录在一个特殊用途表(MySQL)中 我已经可以生成一个带有相应文件链接的图标,但我看不出如何制作单击图标下载文件的记录,也无法创建日志记录 我猜我将不得不使用一个按钮,并将按钮的动作设置为运行。。。什么?一个控制器动作,一个助手函数,其他的 这是最后一点,我真的无法恢复理智。我将感谢任何可能实施过类似措施的人的建议CakePHP如何组合流程步骤,cakephp,button,Cakephp,Button,我正在开发一个允许用户下载文件的系统,但是如果他们下载了一个文件,我希望将此操作记录在一个特殊用途表(MySQL)中 我已经可以生成一个带有相应文件链接的图标,但我看不出如何制作单击图标下载文件的记录,也无法创建日志记录 我猜我将不得不使用一个按钮,并将按钮的动作设置为运行。。。什么?一个控制器动作,一个助手函数,其他的 这是最后一点,我真的无法恢复理智。我将感谢任何可能实施过类似措施的人的建议 你的想法是对的。链接到控制器操作,该操作将写入数据库和日志,并将加载文件并将其呈现给用户 例如: c
你的想法是对的。链接到控制器操作,该操作将写入数据库和日志,并将加载文件并将其呈现给用户 例如:
class MyController extends AppController {
// Load the model
public $uses = ('DbTable');
public function get_file() {
// Save the DB record
$this->DbTable->save(...);
// Set the output header for content delivery
// (use the appropriate mime-type for your file)
header('Content-Type: image/jpg');
// Have it download as if it were an attachment
header('Content-Disposition: attachment; filename="filename.jpg"');
// Print out the file contents
echo file_get_contents('/path/to/filename.jpg');
// Prevent any further processing or rendering
exit();
}
}
嗨,谢谢,史蒂文。我使用的是cakephp 2.2-是否支持上述所有功能?是的,应该支持,尽管它不是完整的代码片段。。。您必须修改它以满足您的确切需要(例如,
Model->save()
bit)。您好-很抱歉,太厚了。。您建议我链接到控制器操作-因此我尝试使用html->link-但是,我需要向控制器操作传递一个参数数组,因为控制器与链接视图使用的控制器不同。。我似乎无法让它发挥作用。有什么想法吗,或者我应该提出另一个问题吗?试试
嗨,史蒂夫,我在模型/控制器之间的函数调用方面遇到了问题。我想我最好提出一个新问题。等我把另一部分做好后,我会回来给你打勾。写入表日志工作正常!只需下载一位进行测试(一旦我对这个函数进行了排序!)