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文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章