【发布时间】:2016-01-18 11:11:58
【问题描述】:
我在通过单击 CMS 中的按钮下载 pdf 文件时遇到问题。我正在使用模块BetterButtons。按钮本身工作正常,但下载文件时出错。我总是收到这个错误:
加载资源失败:服务器响应状态为 500 (第 257 行的警告 /Applications/MAMP/htdocs/myproject/framework/control/HTTPResponse.php)
和
[可恢复的错误] SS_HTTPResponse 类的对象不能被 转换成字符串。
所以我假设这条线
返回 SS_HTTPRequest::send_file($filedata, $fileName, '应用程序/pdf');
$filedata 有问题或有问题... 正确的方法是什么?
我的代码:
在我有下载按钮的数据对象中:
private static $better_buttons_actions = array (
'printFilesPDF'
);
public function getBetterButtonsActions() {
$fields = parent::getBetterButtonsActions();
$fields->push(BetterButtonCustomAction::create('printFilesPDF', 'Print files'));
return $fields;
}
public function printFilesPDF() {
$filedata = File::find("assets/PDF/myFile.pdf");
$fileName = "myFile.pdf";
return SS_HTTPRequest::send_file($filedata, $fileName, 'application/pdf');
}
【问题讨论】:
-
每当您收到“500 错误”返回时,您需要更改为开发模式,这会给您一个错误,可能会帮助您解决或这里的其他人帮助您解决
-
嗨。谢谢你这么快回答。我处于开发模式..单击按钮后重新加载页面后发现“真实”错误:[Recoverable Error] SS_HTTPResponse 类的对象无法转换为字符串。不幸的是仍然不知道该怎么做:( ...你能帮我吗?
-
@iraira 我遇到了同样的问题。你找到解决方案了吗?
-
@csy_dot_io 是的,我找到了解决方案。待我在家时,我会将其作为答案发布。
-
那将是完美的。非常感谢!
标签: download httprequest httpresponse silverstripe