微信内直接跳转浏览器打开方法

发布于 2019-03-03  105 次阅读


无意之中发现在微信中打开下载链接会直接跳转浏览器打开下载,于是突发奇想,用PHP输出一个文件能不能跳转。

$file = '';

header('Content-Description: File Transfer');

    header('Content-Type: application/octet-stream');

    header('Content-Disposition: attachment; filename="'.basename($file).'"');

    header('Expires: 0');

    header('Cache-Control: must-revalidate');

    header('Pragma: public');

    header('Content-Length: ' . filesize($file));

    readfile($fil

试了一下发现可以跳转,然后加了个UA判断,只要用微信内置浏览器打开就输出文件下载,从而调用浏览器打开,非微信内置浏览器则不输出文件下载,最终代码如下。

<?php

function is_weixin_visit()

{

    if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {

        return true;

    } else {

        return false;

    }

}

if (is_weixin_visit()) {

    $file = '';

    header('Content-Description: File Transfer');

    header('Content-Type: application/octet-stream');

    header('Content-Disposition: attachment; filename="' . basename($file) . '"');

    header('Expires: 0');

    header('Cache-Control: must-revalidate');

    header('Pragma: public');

    header('Content-Length: ' . filesize($file));

    readfile($file);

    exit;

}

仅适用于Android


一曲肝肠断,何处觅知音。