2016-05-08 8 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 kbで、代わりに362654です。ファイル内には何もありません。

答えて

0

解決策が見つかりました。ただで :それを返さないgetInstanceByNameとしてファイルの内容を保存することはできません

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

。コンテンツを取得し、dbBLOBフィールドにそれを保存するために、私は次のコードを使用:

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

だから問題は、ファイルを誤ってセーブしました。

関連する問題