无意之中发现在微信中打开下载链接会直接跳转浏览器打开下载,于是突发奇想,用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