PHP强制下载文件,并输出文件名与文件大小信息

function getFileSize($url){  //获取文件大小函数
	 $url = parse_url($url); 
	 if($fp = @fsockopen($url['host'],empty($url['port'])?80:$url['port'],$error)){
	  fputs($fp,"GET ".(empty($url['path'])?'/':$url['path'])." HTTP/1.1\r\n");
	  fputs($fp,"Host:$url[host]\r\n\r\n");
	  while(!feof($fp)){
	   $tmp = fgets($fp);
	   if(trim($tmp) == ''){
	    break;
	   }else if(preg_match('/Content-Length:(.*)/si',$tmp,$arr)){
	    return trim($arr[1]);
	   }
	  }
	  return null;
	 }else{
	  return null;
	 }
};
$filename = $_REQUEST["url"];  //获取文件URL(这里的url已经是完整的,若不完整需要修改)
$filesize = getFileSize($filename);
$realfilename = substr(strrchr($filename,"/"),1);  //获取文件名(以url最后一个斜杠之后的内容作为文件名)
header ("Content-Type: application/octet-stream");  //申明下载
header ('Content-Disposition: attachment;filename="'.$realfilename.'"');  //下载文件名
header("Accept-Ranges: bytes");
header("Content-Length: ".$filesize);
readfile ($filename);


这里的代码需要放到一个新的php文件中,文件地址可通过表单形式提交到这个php文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值