2014-12-12 2 views
1

Я пытаюсь загрузить ai/png из mysql DB, но все, что я получаю, это пустой файл. На столе у ​​меня есть только id и два longblob (file_ai, file_png). Например, файл саман вид иллюстратора:загрузить longblob file (adobe Illustrator или png) с Yii, Mysql

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

Ваши не вторя из фактических содержимого файла!

Если вы храните изображения в базе данных, нужно сделать эхо после вы бросаете заголовки ...

echo $file->file_ai;

+0

он решил ошибку. Я использовал эхо о файле pdf, но теперь, после того, как я установил заголовки для принудительной загрузки, я не думал снова повторять. спасибо – Cloud78

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