首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从MySQL流式传输二进制文件以使用PHP下载

从MySQL流式传输二进制文件以使用PHP下载
EN

Stack Overflow用户
提问于 2009-10-13 21:41:04
回答 2查看 8.8K关注 0票数 6

我将Excel电子表格存储在MySQL表的longblob字段中。我需要检索此数据,然后以可下载文件的形式将其流式传输给用户,最好不先将其写入磁盘。

有可能吗?

编辑-呃,我想通了.在下面的回答中发布。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-13 21:47:12

代码语言:javascript
复制
function getfile($blockid)
{
    global $msa_db;
    $sql = "select filename, filedata from blocks where blockid = '$blockid'";
    $query = mysql_query($sql, $msa_db);
    $result['filename'] = mysql_result($query,0,0);
    $result['filedata'] = mysql_result($query,0,1);
    return $result;

}

function download($fileinfo)
{
    $file = base64_decode($fileinfo['filedata']);
    header("Cache-Control: no-cache private");
    header("Content-Description: File Transfer");
    header('Content-disposition: attachment; filename='.$fileinfo['filename']);
    header("Content-Type: application/vnd.ms-excel");
    header("Content-Transfer-Encoding: binary");
    header('Content-Length: '. strlen($file));
    echo $file;
    exit;
}

$fileinfo = getfile($blockid);

download($fileinfo);
票数 13
EN

Stack Overflow用户

发布于 2016-03-22 17:16:56

刚拿到解决方案

http://www.codeproject.com/Articles/831185/CREATE-DOWNLOAD-ZIP-FILE-USING-PHP

代码语言:javascript
复制
    $data = base64_decode($data);

    header("Cache-Control: no-cache private");
    header("Content-Description: File Transfer");
    header("Content-disposition: attachment; filename='".$identifier.".zip'");      
    header("Content-Type: application/octet-stream");
    header("Content-Transfer-Encoding: binary");
    header('Content-Length: '. strlen($data));      
    header("Pragma: no-cache");
    header("Expires: 0");

    ob_clean();
    flush();

    echo $data;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1563069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档