0

我用 DB2、PHP 和 Yii 框架管理 CLOB 和 BLOB 类型(虽然我只使用 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_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 文件。

你能帮助我吗?谢谢

4

1 回答 1

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类。

于 2014-12-04T00:59:07.627 回答