Yii2。从数据库BLOB字段下载文件

时间:2016-05-08 06:18:45

标签: download yii2 blob

我将png图片保存到数据库中的BLOB字段。

$model->content = \yii\web\UploadedFile::getInstanceByName($fileName);
$model->save();

我现在如何下载?我试过了:

$model=$this->findModel($id);
header('Content-length: 362654');
header('Content-Type: png');
header('Content-Disposition: attachment; filename='.$model->name_);
echo $model->content;

但在此之后文件被下载但是大小为1 kb而不是362654.文件中没有任何内容。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 只需一个:

$model->content = \yii\web\UploadedFile::getInstanceByName($fileName);

无法保存文件内容,因为getInstanceByName不会返回它。为了获取内容并将其保存在db BLOB字段中,我使用了以下代码:

$file = \yii\web\UploadedFile::getInstanceByName($fileName);
$fp = fopen($file->tempName, 'r');
$content = fread($fp, $file->size);
fclose($fp);
$model->content = $content;
$model->save();

所以问题是保存文件不正确。