当前位置:   article > 正文

php pdf只能查看不能下载,对于pdf文件不支持浏览器下载如何处理?

pdf可以打开但是下载没有权限

最近在工作中遇到这样一个问题,就是知道pdf文件的下载地址,但是所有浏览器对于pdf文件都是在浏览器中打开,不支持下载,需要用户下载下来。于是就做了一个html页面,把下载地址设为downpdf.php?pdfid="";这个pdfid是根据下面的数组的键名来定的,需要注意的是,对于包含有空格的文件名需要用-或者_来隔离,否则会导致截取不完全,但是我发现,除了火狐不支持外,其他的浏览器正常,可以识别包含空格的文件名,所以在处理上传文件的文件名的时候,如果是英文,尽量不要带空格,可以用-或者_取代空格,一下就是代码:

$pdfid=$_GET['pdfid'];//获取文件ID

$pdf=array('1'=>'http://www.eeworld.com.cn/Vishay/2013_activity/Automotive.pdf',

'2'=>'http://www.eeworld.com.cn/Vishay/2013_activity/ConventionalPowerTrains.pdf',

'3'=>'http://www.eeworld.com.cn/Vishay/2013_activity/Chassis Controls.pdf',

'4'=>'http://www.eeworld.com.cn/Vishay/2013_activity/Body Electronics.pdf',

'5'=>'http://www.eeworld.com.cn/Vishay/2013_activity/Micro and Mild Hybrids.pdf',

'6'=>'http://www.eeworld.com.cn/Vishay/2013_activity/Full Hybrid Vehicles.pdf',

'7'=>'http://www.eeworld.com.cn/Vishay/2013_activity/FEVs.pdf',

'8'=>'http://www.eeworld.com.cn/Vishay/2013_activity/Off-Road Equipment.pdf',

'9'=>'http://www.eeworld.com.cn/Vishay/2013_activity/Heavy-Duty Transportation.pdf',

);

$file_dir ="/Data/webapps/cms/Vishay/2013_activity";

$file_url = $pdf[$pdfid];

$file_name = str_replace('http://www.eeworld.com.cn/Vishay/2013_activity/', '', $file_url);

//echo $file_name;exit;

$file = fopen($file_dir."/".$file_name,"r"); // 打开文件

header('Content-Encoding: none');

header("Content-type: application/octet-stream");

header("Accept-Ranges: bytes");

header("Accept-Length: ".filesize($file_dir."/".$file_name));

header( 'Content-Transfer-Encoding: binary' );

header("Content-Disposition: attachment; filename=www.eeworld.com.cn_".$file_name); //以真实文件名提供给浏览器下载

header('Pragma: no-cache');

header('Expires: 0');

//输出文件内容

echo fread($file,filesize($file_dir."/".$file_name));

fclose($file);

exit;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/338486
推荐阅读
相关标签
  

闽ICP备14008679号