从视图调用控制器方法
Calling a controller method from view
我的控制器中有一个方法
public function download($filepath){
$download_path = $_SERVER['DOCUMENT_ROOT']. "mediabox/import";
$file = $download_path + $filepath ;
if(!$file) die("I'm sorry, you must specify a file name to download.");
if(eregi("'.ht.+", $file)) die("I'm sorry, you may not download that file.");
if(!file_exists($file)) die("I'm sorry, the file doesn't seem to exist.");
$type = filetype($file);
header("Content-type: $type");
header("Content-Disposition: attachment;filename=$filename");
header('Pragma: no-cache');
header('Expires: 0');
// Send the file contents.
readfile($file);
}
在我看来,我有一个链接
<a target='_blank' class='download_dialog' onClick="???">
我想调用我的控制器的下载方法onclick事件的链接。这样做好吗?我该怎么做?感谢
您可以尝试:
<a target='_blank' class='download_dialog' href="<?php echo base_url();?>YourControllerName/download">
(是的,你需要使用base_url的url助手)或在一些javascript onClick调用中使用该url,但我不确定这是否是最适合你的解决方案。
首先参考文档总是一个好主意:
http://codeigniter.com/user_guide/general/urls.htmlhttp://codeigniter.com/user_guide/helpers/url_helper.html
请注意使用AJAX调用。网上有一些很棒的资源,下面是其中之一:
http://www.switchonthecode.com/tutorials/simple-ajax-php-and-javascript
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 如何在单击复选框后调用控制器方法
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- 从全局函数调用Ember控制器上的方法
- 将方法从控制器注入到未使用右变量调用的指令
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- 在嵌套递归指令中将参数传递给父控制器方法
- 为什么't我的角度控制器'在其某个方法内的作用域中的依赖项
- 如何在使用$timeout进行指令渲染后调用控制器方法
- JQuery$.ajax()发布数据以调用我的控制器中的方法
- 使用javascript将控制器方法移动到客户端
- 使用查询将对象数组发布到asp.net-mvc控制器操作的正确方法是什么
- Rails Assets Pipeline从控制器和方法加载JavaScript
- AngularJS在页面重定向上执行控制器方法
- 从填充了 AJAX 的下拉列表中获取控制器的操作方法中的值
- 如何从服务器端控制器返回或调用已签名的小程序的方法
- 如何使用 javascript 而不是使用控制器中的方法在 rails 中呈现部分按钮单击
- 控制器中的 MVC3 自动完成和开机自检方法
- 如何使用javascript express node将变量从控制器中的一个方法公开.js到另一个控制器.js