2014-12-03 64 views
0

我使用DB2,PHP和Yii Framework管理CLOB和BLOB类型(尽管我只使用php)。我正在上传文件到DB2。使用CLOB和BLOB类型。但我有一个问题,我没有下载文件。我获得了一个资源,流类型与此代码:如何获取和管理数据库的流资源? PHP-DB2

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高球流”,它获得与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的CFileHelper课呢。

+0

我不想发送文件。我需要在DB2的CLOB列中插入并获取文件。 – vicenrele 2014-12-04 13:20:36

+0

@vicenrele其实'sendFile'的用例是下载一个文件。或者可能是这是我的误解?您是否在谈论下载DB2的Clob文件或存储交互clob? – 2014-12-04 14:09:43