我正在研究Yii,我想上传和下载一些文件,我可以将一些文件上传到blob_document字段中的Documents表,这是blob类型,现在我已经尝试过这样下载文件
<?
$file = Documents::model()->findByPk('3');
$file = $file->blob_document;
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate');
header('Pragma: public');
echo $file;
exit;
?>
我正在下载.txt文件,这是正确的扩展名,但内容的名称是文件而不是原始文字。
答案 0 :(得分:1)
$ file-&gt; blob_document只是文件名,要获取内容,可以使用file_get_contents,或者更好(减少内存消耗),readfile()来输出文件的内容。
<?php
$file = Documents::model()->findByPk('3');
$file = $file->blob_document;
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Cache-Control: must-revalidate');
header('Pragma: public');
readfile($file);
exit;
?>
答案 1 :(得分:0)
数据库中的内容是什么样的?也许它没有正确插入......
提取SQL,应该是犯罪; - )