PHP PHP强制文件下载而不是在新选项卡/窗口中打开

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP PHP强制文件下载而不是在新选项卡/窗口中打开相关的知识,希望对你有一定的参考价值。

$file_name = $_GET['file'];
 
// make sure it's a file before doing anything!
if(is_file($file_name))
{
 
    /*
        Do any processing you'd like here:
        1.  Increment a counter
        2.  Do something with the DB
        3.  Check user permissions
        4.  Anything you want!
    */
 
    // required for IE
    if(ini_get('zlib.output_compression')) { ini_set('zlib.output_compression', 'Off'); }
 
    // get the file mime type using the file extension
    switch(strtolower(substr(strrchr($file_name,'.'),1)))
    {
        case 'pdf': $mime = 'application/pdf'; break;
        case 'zip': $mime = 'application/zip'; break;
        case 'jpeg':
        case 'jpg': $mime = 'image/jpg'; break;
        default: $mime = 'application/force-download';
    }
    header('Pragma: public');   // required
    header('Expires: 0');       // no cache
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Cache-Control: private',false);
    header('Content-Type: '.$mime);
    header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
    header('Content-Transfer-Encoding: binary');
    header('Content-Length: '.filesize($file_name));    // provide file size
    readfile($file_name);       // push it out
    exit();
 
}

以上是关于PHP PHP强制文件下载而不是在新选项卡/窗口中打开的主要内容,如果未能解决你的问题,请参考以下文章

window.open(url, windowname, opts) 在新选项卡中打开,而不是在 Firefox 中打开新窗口

Safari blob 下载影响表单提交 - 导致表单帖子被下载而不是在新选项卡中打开

JavaScript 在新窗口中打开,而不是选项卡

在新选项卡/窗口中打开链接而不丢失当前 JSF 页面的视图范围

使用 JavaScript 打开链接新窗口(不是选项卡)而不输入两次 URL? [复制]

角度选项卡选择打开新页面而不是在同一页面中打开