2016-05-08 4 views
0

Я сохранил png изображение до BLOB Поле в базе данных.Yii2. Скачать файл из базы данных 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 кб, а не 362654. И ничего внутри файла.

ответ

0

Я нашел решение. С просто:

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

это не представляется возможным, чтобы сохранить содержимое файла в getInstanceByName не возвращает его. Для того чтобы получить содержимое и сохранить его в dbBLOB поля я использовал следующий код:

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

Таким образом, проблема была неправильное сохранением файла.

Смежные вопросы