>  기사  >  백엔드 개발  >  这样为什么不能实现文件下载解决方案

这样为什么不能实现文件下载解决方案

WBOY
WBOY원래의
2016-06-13 11:49:01939검색

这样为什么不能实现文件下载
$root="D:/wamp/www/新建文件夹/";
if(is_dir($root))
{
   $openHandle=opendir($root);
   while(false!==($file=readdir($openHandle)))
   {
   if(!is_dir($root.$file))
   {
   echo "".$file."
";
    echo "$root$file
";
   }
   }
   closedir($openHandle);
}
else 
{
echo "文件夹不存在";
}
?>
这段代码为什么不能实现文件下载 浏览器:搜狗浏览器 IE 都试了
------解决方案--------------------
用header头下载
------解决方案--------------------
已經幫你寫好了

<?php<br />$root="D:/ghost/";<br />if(is_dir($root)){<br />   $openHandle=opendir($root);<br />   while(false!==($file=readdir($openHandle))){<br />	   if(!is_dir($root.$file)){<br />		 echo "<a href='?do=down&file=".$file."&path=".urlencode($root)."'>".$root.$file."</a><br/>";<br />	   }<br />   }<br />   closedir($openHandle);<br />}else{<br />echo "文件夹不存在";<br />}<br /><br />$do=(isset($_REQUEST['do'])) ? addslashes($_REQUEST['do']) : '';<br />if($do=='down') {<br />	$file=(isset($_REQUEST['file'])) ? addslashes($_REQUEST['file']) : '';<br />	$path=(isset($_REQUEST['path'])) ? addslashes($_REQUEST['path']) : '';<br /><br />	OB_start();<br />	function DownLoad($info,$file) {<br />		OB_Clean();<br />		if(!file_exists($info)) {<br />			exit('Error:'.__LINE__.','.basename(__FILE__).'!');<br />		}<br />		$info=file_get_contents($info);<br /><br />		header('Content-Transfer-Encoding: binary');<br />		header('Content-Type: application/force-download; name="'.$file.'"');<br />		header('Content-Disposition: attachment; filename='.$file.'');<br />		header('Cache-control: private');<br />		header('Pragma: no-cache');<br />		header('Expires: 0');<br />		echo $info;<br />		die();<br />	}<br />	DownLoad($path.$file,$file);<br />}

------解决方案--------------------
file_put_contents('download/excel.csv',$str);
header("location:download/excel.csv"); //让电脑自动弹出下载对话框

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.