Как я могу получить и управлять потоковым ресурсом БД? PHP-DB2

Я управляю типами CLOB и BLOB с помощью DB2, PHP и Yii Framework (хотя я использую только php). Я получаю загружать файлы в DB2. С типами CLOB и BLOB. Но у меня проблема, я не могу загрузить файлы. Я получаю ресурс, тип потока с этим кодом:

if(is_resource($model->file_content)) echo 'resource of type:';
echo '<br>';
echo get_resource_type($model->file_content);

Мне нужно конвертировать этот поток в файл для загрузки в сети.

Я пробовал: print_r( stream_get_contents($model->file_content));

и используя fread()

Есть ли функция php для получения типа потока?

Редактировать: Тип «ibm PDO Lob Stream», это получить с stream_get_meta_data($model->file_content);

Также я попробовал:

header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Transfer-Encoding: binary');
header('Content-length: '.$model->file_size);
header('Content-Type: '.$model->file_type);
header('Content-Disposition: attachment; filename='.$model->file_name);

echo $model->file_content;

Но в результате файл с HTML моей страницы.

Вы можете мне помочь? Спасибо

0

Решение

Нет необходимости писать чисто PHP код. Yii имеет метод, называемый sendFile который обрабатывает это. Взглянуть:

Yii::app()->request->sendFile('file.ext', "Content Of File", "Mime Time",TRUE);

Как определяет официальный документ sendFile():

Посылает файл пользователю.

public void sendFile(string $fileName, string $content, string $mimeType=NULL, boolean $terminate=true)

Также предлагается использовать Yii’s CFileHelper класс тоже.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]