用PHP实现浏览器点击下载各种格式文档的方法详解,php强制下载类型的实现代码

用PHP实现浏览器点击下载各种格式文档的方法详解,php强制下载类型的实现代码

出于现行反革命的浏览器已经能够识别txt文书档案格式,假如只给txt文书档案做二个文字链接的话,点击后只是张开一个新窗口显示txt文件的剧情,并不可能促成点击下载的目标。当然这几个主题材料的消除办法也能够是将txt文件改名称为浏览器不认得的公文(举个例子rar),那样的话,由于浏览器不能够识别rar类型的文书,只好让用户下载了。还会有一种情势,正是运用代码通过header设置文书档案的格式来完毕点击下载的指标。
PHP代码如下: ===========================================================
$filename = ‘/path/’.$_GET[‘file’].’.txt’; //文件路线
header(“Content-Type: application/force-download”);
header(“Content-Disposition: attachment;
filename=”.basename($filename));

function downloadFile($file){
/*Coded by Alessio Delmonti*/        
        $file_name = $file;
        $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(‘Connection: close’);
        readfile($file_name);           // push it out
        exit();
}

[【注:别的文件想设置成下载文件,和下边介绍的主意同样】]

readfile($filename);

大概表达: 率先个header函数设置Content-Type的值为application/force-download;
第二个header函数设置要下载的公文。注意这里的filename是不包蕴路线的文书名,filename的值现在就是点击下载后弹出对话框里面包车型客车公文名,如果带路径的话,弹出对话框的文书名正是雾里看花的;
最终经过readfile函数,将文件流输出到浏览器,那样就兑现了txt文件的下载。

复制代码 代码如下:

readfile($filename);

轻便表明: 率先个header函数设置Content-Type的值为application/force-download;
其次个header函数设置要下载的文本。注意这里的filename是不分包路线的公文名,filename的值以往就是点击下载后弹出对话框里面包车型客车文本名,假如带路径的话,弹出对话框的公文名就是不解的;
最终通过readfile函数,将文件流输出到浏览器,那样就达成了txt文件的下载。

[神不知鬼不觉中发掘,假设在此文件中输出内容,那么些剧情会被写入到下载文件中]

 

其次有个别 :手提式有线电电话机调用php页面,完成apk的下载

第一:header(‘application/vnd.android.package-archive’);//android包apk下载
的依据头文件

 

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

 

      header(“Content-Length: ” .
filesize($filename));
//这些头文件是为了下载时呈现文件大小的,若无此尾部,(手提式有线电电话机)下载时不会呈现大小

      header(“Content-Disposition:
attachment; filename=”.basename($filename));

   readfile($filename);

【新增】

 

$file = 'sf.jpg';
if (file_exists($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;
}

 

<?php  

  • header(“Content-Type:text/html; charset=utf-8”);  
  • if(get_device_type()==’ios’){  
  • $ff=’huanbaoba.ipa’;  
  •     header(‘application/iphone’);
     ios专项未来头文件
  •     header(‘Content-Disposition:attachment;filename=”huanbaoba.ipa”‘);  
  • }else{  
  • $ff=’huanbaoba.apk’;  
  •     header(‘application/vnd.android.package-archive’);  
  •     header(‘Content-Disposition:attachment;filename=”huanbaoba.apk”‘);  
  • }  
  • readfile($ff);   
  • //获取器械项目
  • function get_device_type(){  
  • $agent = strtolower($_SERVER[‘HTTP_USER_AGENT’]);  
  • $type = ‘other’;  
  • if(strpos($agent, ‘iphone’) || strpos($agent, ‘ipad’)){  
  • $type = ‘ios’;  
  •     }  
  • if(strpos($agent, ‘android’)){  
  • $type = ‘android’;  
  •     }  
  • return $type;  

其三某个:js 大概 php怎么着收获
 设备或许浏览器  类型,如是否是在微信中开采的等等

一:js判定设备项目

  1. function is_weixn(){  
  2.     var ua = navigator.userAgent.toLowerCase();  
  3.     if(ua.match(/MicroMessenger/i)==”micromessenger”) {
     //推断是还是不是在微信中开荒此网页
  4.         return true;  
  5.     } else {  
  6.         return false;  
  7.     }  
  8. }  

二: php判定设备及浏览器等等类型

  1. function is_weixin(){  
  2.     if ( strpos($_SERVER[**‘HTTP_USER_AGENT’]**, ‘MicroMessenger’) !== false ) {  
  3.             return true;  
  4.     }    
  5.     return false;  
  6. }  

出于前天的浏览器已经足以识别txt文书档案格式,借使只给txt文书档案做二个文字链接的话,点击后只是张开贰个新窗口突显txt文件的内容,并不可能促成点击下载的目标。当然那个难题的化解办法也能够是将txt文件改名称为浏览器不认得的公文(比如rar),那样的话,由于浏览器不可能识别rar类型的文书,只可以让用户下载了。还也可能有一种情势,就是使用代码通过header设置文档的格式来兑现点击下载的指标。
PHP代码如下:

鉴于现行反革命的浏览器已经能够识别txt文书档案格式,假使只给txt文书档案做一个文字链接的话,点击后只是张开叁个新窗口显示txt文件的剧情,并不可能促成点击下载的指标。当然那么些主题素材的化解办法也得以是将txt文件改名叫浏览器不认知的文本(比如rar),这样的话,由于浏览器不能够识别rar类型的文件,只好让用户下载了。还会有一种艺术,正是利用代码通过header设置文书档案的格式来贯彻点击下载的目标。

PHP代码如下: ===========================================================
$filename =
‘/path/’.$_GET[‘file’].’.txt’; //文件路线
header(“Content-Type:
application/force-download”);
header(“Content-Disposition: attachment;
filename=”.basename($filename));【注,测经验basename()不支持中文】

admin

网站地图xml地图