//$sData //得到指定索引号的附件的BASE64未经解码的数据流
//$attFileName 文件名$sBinData = base64_decode($sData); //
header("Cache-control:   private");
Header("Content-type: application/octet-stream"); 
header("ontent-Transfer-Encoding: Binary");
header("Content-Length: " . (string)(strlen($sBinData)));
header("Content-disposition: attachment;filename=" . $attFileName);

echo $sBinData; 存在的问题是如果用迅雷等下载软件对附件下载时,附件就下载不下来。
得到的就会是一个所链接的php文件。怎么样使得点击下载时不会启迅雷等下载,就算IE设置了启用迅雷也不会通过迅雷去自动下载.就像126邮箱中的带附件的邮件一样。

解决方案 »

  1.   

    迅雷不启用?没用过
    不过迅雷我这都能下载,除非验证了会话cookie/session里面啥东西,迅雷下载的时候,会话已经失效了error_reporting(0);
    set_time_limit(0);
    header("Content-type:application/x-msdownload\n");
    header("Content-type:unknown/unknown;"); 
    header("Content-disposition: attachment; filename=\"".$attFileName."\""); 
    header('Content-transfer-encoding: binary');
    header("Date: " . gmdate("D, d M Y H:i:s") . " GMT"); 
    //header("Last-Modified: ".gmdate("D, d M Y H:i:s", filemtime($url))." GMT"); 
    header("Accept-Ranges: bytes");
    header("HTTP/1.1 200 OK");
    header("Content-Length:".(string)(strlen($sBinData))."\n\n"); echo $sBinData; 看看