我想讓用戶在Slim php框架中下載文件。從Slim Framework 2.4下載文件
預期用途是,該文件將是:
http://api.test.com/item/123.json < - 返回JSON字符串數據
http://api.test.com/item/123.pdf < - 下載PDF文件與數據
我有人類可讀演示生成PDF的代碼,但我需要的是讓Slim發送正確的頭文件,以便下載文件。
這是下面的代碼,我(工作)對現有系統:
header("Pragma: public");
header('Content-disposition: attachment; filename='.$f->name);
header('Content-type: ' .$f->type);
header('Content-Transfer-Encoding: binary');
echo $f->data;
以下是我目前(非工作)修身代碼,我宣佈頭不會被髮送到瀏覽器。相反,我得到文本/ HTML。 (請注意,這個例子只包含一個頭文件,我也測試過是否有其他頭文件操作會導致任何影響,但它沒有)。 json/pdf/xml的開關盒稍後會被添加。
R::setup();
$app = new \Slim\Slim();
$app->get('/item', function() use ($app) {
$f = R::load('file', 123);
$app->response->headers->set("Content-Type", "application/pdf"); //$f->type
$app->response->setBody($f->data);
});
$app->run();
$ app-> response-> setBody($ f-> data)然而工作正常。
我無法重現您的問題修身2.4.0或2.4.3。如果你能夠使用Slim的最新版本,而你還沒有,我強烈建議升級。 –