php 文件下载

fileDownService.php

<?php
	//不封装
		function downloadFile( $fullPath ){
		
		
			//$fullPath = iconv("utf-8", "gb2312", $fullPath);
		
			echo $fullPath;
		
		
			// Must be fresh start
			if( headers_sent() )
				die('Headers Sent');
			 
			 
		
			// Required for some browsers
			if(ini_get('zlib.output_compression'))
				ini_set('zlib.output_compression', 'Off');
		
			// File Exists?
			if( file_exists($fullPath) ){
			 
			// Parse Info / Get Extension
			$fsize = filesize($fullPath);
			$path_parts = pathinfo($fullPath);
			$ext = strtolower($path_parts["extension"]);
			 
			// Determine Content Type
			switch ($ext) {
			case "pdf": $ctype="application/pdf"; break;
				case "exe": $ctype="application/octet-stream"; break;
				case "zip": $ctype="application/zip"; break;
				case "doc": $ctype="application/msword"; break;
				case "xls": $ctype="application/vnd.ms-excel"; break;
				case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
				case "gif": $ctype="image/gif"; break;
		       case "png": $ctype="image/png"; break;
		       case "jpeg":
		       case "jpg": $ctype="image/jpg"; break;
		       default: $ctype="application/force-download";
			}
		
			header("Pragma: public"); // required
		     header("Expires: 0");
		     header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
		     header("Cache-Control: private",false); // required for certain browsers
		     		header("Content-Type: $ctype");
		     header("Content-Disposition: attachment; filename=\"".basename($fullPath)."\";" );
		     		header("Content-Transfer-Encoding: binary");
		     header("Content-Length: ".$fsize);
		     		ob_clean();
		     flush();
		     readfile( $fullPath );
		
		   } else
		     		die('File Not Found');
		}
	//封装
?>

fileDownList.php

<meta http-equiv="content-type" content="text/html" charset="gb2312"/>
<a href="fileDownProcess.php?fileName=test.png">点击下载</a><img src="test.png"  width="200px" height="200px" /><br/><br/>
<a href="fileDownProcess.php?fileName=test.png">点击下载</a><img src="test.png"  width="200px" height="200px" /><br/><br/>
<a href="fileDownProcess.php?fileName=test.png">点击下载</a><img src="test.png"  width="200px" height="200px" /><br/><br/>
<a href="fileDownProcess.php?fileName=test.png">点击下载</a><img src="test.png"  width="200px" height="200px" /><br/><br/>

fileDownProcess.php

<?php
	require_once 'fileDownService.php';
	
	$file_name = $_REQUEST['fileName'];
	
	downloadFile($file_name);
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值