如何通过Flysystem强制下载文件?

时间:2016-07-19 10:41:13

标签: php yii2 flysystem

我可能会遗漏一些非常明显的东西,但我正在使用yii2-flysystem和Dropbox来读写文件。

我可以上传并将它们写入Dropbox而没有任何问题,但是,当这样阅读时:

$file = Yii::$app->dropboxFs->read($fn);

..所有给我的是一个字符串(/ tmp / phpQkg8mJ)。

如何实际强制下载我正在阅读的文件?我不确定临时文件位置实际上与什么有关。

1 个答案:

答案 0 :(得分:0)

尝试功能readfile()。 根据示例,您的代码应如下所示:

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}