赞
踩
最近在工作中遇到这样一个问题,就是知道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;
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。