我正在尝试从mysql DB下载ai / png,但我得到的只是一个空文件。 在桌子上我只有id和两个longblob(file_ai,file_png)。 例如,文件adobe illustrator视图是:
echo CHtml::link('<span class="glyphicon glyphicon glyphicon-download-alt" aria-hidden="true"></span>',
array('User/downloadFile', 'id' => $file->id, 'ext' => 'application/illustrator'),
$htmlOptions = array('class' => 'toolMes', 'download', 'data-toggle' => 'tooltip', 'data-placement' => 'bottom', 'title' => 'Download Ai'));
在控制器中:
public function actionDownloadFile($id, $ext) {
$file = Files::model()->findByPk($id);
if ($ext === 'application/illustrator') {
header("Content-length:" . strlen($file->file_ai));
header("Content-type: " . $ext . "");
header('Content-Disposition: attachment; filename="' . $file->id . '_' . date("Y-m-d") . '.ai"');
} else {
header("Content-length:" . strlen($file->file_png));
header("Content-type: image/png");
header('Content-Disposition: attachment; filename="' . $file->id . '_' . date("Y-m-d") . '"');
}
}
希望能够得到你宝贵的建议
答案 0 :(得分:0)
你没有回复实际的文件内容!
如果要在数据库中存储图像,则需要在抛出标题后执行回显...
echo $file->file_ai;