0

我正在研究 Yii,我想上传和下载一些文件,我可以将一些文件上传到 blob 类型的 blob_document 字段中的 Documents 表中,现在我已经尝试这样做来下载文件

<?
    $file = Documents::model()->findByPk('3');
    $file = $file->blob_document;
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    echo $file;
    exit;
?>

我正在下载一个 .txt 文件,它是正确的扩展名,但内容具有文件名而不是原始文本。

4

2 回答 2

1

$file->blob_document 只是文件名,要获取内容,可以使用file_get_contents,或者更好(内存消耗少),readfile() 来输出文件的内容。

<?php
    $file = Documents::model()->findByPk('3');
    $file = $file->blob_document;
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    readfile($file);
    exit;
?>
于 2013-02-15T18:55:10.873 回答
0

数据库中的内容是什么样的?也许它没有正确插入....

抽象 SQL,应该是一种犯罪;-)

于 2013-02-15T18:55:47.533 回答