php文件下载代码
	<?
	       header("content-type:text/html; charset=utf-8");
	       $file_name=$_GET['name']; //服务器的真实文件名
	       $file_realName=urldecode($_GET['real']); //数据库的文件名urlencode编码过的
	$file_dir="upload/";
	$file = fopen($file_dir . $file_name,"r"); // 打开文件
	// 输入文件标签
	header( "Pragma: public" );
	header( "Expires: 0" );
	Header("Content-type: application/octet-stream");
	Header("Accept-Ranges: bytes");
	Header("Accept-Length: ".filesize($file_dir . $file_name));
	Header("Content-Disposition: attachment; filename=" . iconv("UTF-8","GB2312//TRANSLIT",$file_realName));
	// 输出文件内容
	echo fread($file,filesize($file_dir . $file_name));
	fclose($file);
	exit;
	?>
2,
有时候为了隐藏下载地址而使用,通过一个php文件下载来源,如果在限制地址或非允许下载地址则禁止下载,点击一个链接后,php执行提示文件下载,当然这对文件类型判断要求准确,如果错误可能造成文件无法打开情况
代码如下
	<?php
	     $filepath = 'http://www.dayanmei.com/upload/aoyun_logo.gif';
	     $filename = 'aoyun_logo.gif';
	     $filetype = $filetype['gif'] ;
	     //文档类型对照表
	$filetype = array(
	     'chm'=>'application/octet-stream',
	     'ppt'=>'application/vnd.ms-powerpoint',
	     'xls'=>'application/vnd.ms-excel',
	     'doc'=>'application/msword',
	     'exe'=>'application/octet-stream',
	     'rar'=>'application/octet-stream',
	     'js'=>"javascript/js",
	     'css'=>"text/css",
	     'hqx'=>"application/mac-binhex40",
	     'bin'=>"application/octet-stream",
	     'oda'=>"application/oda",
	     'pdf'=>"application/pdf",
	     'ai'=>"application/postsrcipt",
	     'eps'=>"application/postsrcipt",
	     'es'=>"application/postsrcipt",
	     'rtf'=>"application/rtf",
	     'mif'=>"application/x-mif",
	     'csh'=>"application/x-csh",
	     'dvi'=>"application/x-dvi",
	     'hdf'=>"application/x-hdf",
	     'nc'=>"application/x-netcdf",
	     'cdf'=>"application/x-netcdf",
	     'latex'=>"application/x-latex",
	     'ts'=>"application/x-troll-ts",
	     'src'=>"application/x-wais-source",
	     'zip'=>"application/zip",
	     'bcpio'=>"application/x-bcpio",
	     'cpio'=>"application/x-cpio",
	     'gtar'=>"application/x-gtar",
	     'shar'=>"application/x-shar",
	     'sv4cpio'=>"application/x-sv4cpio",
	     'sv4crc'=>"application/x-sv4crc",
	     'tar'=>"application/x-tar",
	     'ustar'=>"application/x-ustar",
	     'man'=>"application/x-troff-man",
	     'sh'=>"application/x-sh",
	     'tcl'=>"application/x-tcl",
	     'tex'=>"application/x-tex",
	     'texi'=>"application/x-texinfo",
	     'texinfo'=>"application/x-texinfo",
	     't'=>"application/x-troff",
	     'tr'=>"application/x-troff",
	     'roff'=>"application/x-troff",
	     'shar'=>"application/x-shar",
	     'me'=>"application/x-troll-me",
	     'ts'=>"application/x-troll-ts",
	     'gif'=>"image/gif",
	     'jpeg'=>"image/pjpeg",
	     'jpg'=>"image/pjpeg",
	     'jpe'=>"image/pjpeg",
	     'ras'=>"image/x-cmu-raster",
	     'pbm'=>"image/x-portable-bitmap",
	     'ppm'=>"image/x-portable-pixmap",
	     'xbm'=>"image/x-xbitmap",
	     'xwd'=>"image/x-xwindowdump",
	     'ief'=>"image/ief",
	     'tif'=>"image/tiff",
	     'tiff'=>"image/tiff",
	     'pnm'=>"image/x-portable-anymap",
	     'pgm'=>"image/x-portable-graymap",
	     'rgb'=>"image/x-rgb",
	     'xpm'=>"image/x-xpixmap",
	     'txt'=>"text/plain",
	     'c'=>"text/plain",
	     'cc'=>"text/plain",
	     'h'=>"text/plain",
	     'html'=>"text/html",
	     'htm'=>"text/html",
	     'htl'=>"text/html",
	     'rtx'=>"text/richtext",
	     'etx'=>"text/x-setext",
	     'tsv'=>"text/tab-separated-values",
	     'mpeg'=>"video/mpeg",
	     'mpg'=>"video/mpeg",
	     'mpe'=>"video/mpeg",
	     'avi'=>"video/x-msvideo",
	     'qt'=>"video/quicktime",
	     'mov'=>"video/quicktime",
	     'moov'=>"video/quicktime",
	     'movie'=>"video/x-sgi-movie",
	     'au'=>"audio/basic",
	     'snd'=>"audio/basic",
	     'wav'=>"audio/x-wav",
	     'aif'=>"audio/x-aiff",
	     'aiff'=>"audio/x-aiff",
	     'aifc'=>"audio/x-aiff",
	     'swf'=>"application/x-shockwave-flash");
	   
	    $query = file_get_contents($filepath);    
	    
	     header("Content-type: ".$filetype);    
	     header("Content-Disposition:     inline;     filename     =     ".$filename);    
	     header('Cache-Control:     must-revalidate,     post-check=0,     pre-check=0');    
	     header('Expires:     0');    
	     header('Pragma:     public');    
	     echo     $query;
	?>
	

