ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php保存文件和下载文件到本地的四种方法  

2021-07-04 09:52:26  阅读:229  来源: 互联网

标签:文件 filepath res filename Content header file php 四种


本文操作环境:windows7系统、PHP7.1版,DELLG3电脑  
php保存文件的方法  
PHP下载保存文件到本地  
经常需要点击按钮,然后弹出一个对话框,保存下载文件。  
最常见的方式,就用<a>链接实现,例如:  
<ahref="xxx/youfile.txt">youfile.txt</a>  
本文介绍的下载保存方式,是通过生成文件后,然后用代码实现下载保存。  
完整示例(推荐)  
<?php  
/**  
*下载文件header函数  
*copyright by www.why114.com  
*2015-05-10  
*/  
$res_filepath="";  
if(isset($_GET["filepath"])){  
$res_filepath=$_GET["filepath"];  
}  
//$filepath="./lib/tmp_txt_result_file_20150508170116.txt";  
$file_realpath=realpath($res_filepath);  
$file_basename=basename($res_filepath);  
//$file_filesize=filesize($res_filepath);  
$file_fileinfo=pathinfo($res_filepath);  
if(!file_exists($res_filepath)){  
header("Content-type:text/html;charset=utf-8");  
echo"<html>  
<divstyle='margin-left:20px'>  
<br>  
<fontcolor='blue'>$file_basename</font>是临时文件已过期,服务器不保存!  
<br><br>  
请提取最新代理:<ahref='../fetch.php'>http://proxy.mimvp.com/api/fetch.php</a>  
<!--  
<script>  
alert('".$file_basename."\\n是临时文件,服务器不保存!\\n\\n请重新提取最新代理');  
</script>  
-->  
</div>  
</html>";  
}else{  
$file_filesize=filesize($res_filepath);  
$file=fopen($res_filepath,"r");  
Header("Content-type:application/octet-stream");  
Header("Accept-Ranges:bytes");  
Header("Accept-Length:".$file_filesize);  
Header("Content-Disposition:attachment;filename=".$file_basename);  
echofread($file,$file_filesize);  
fclose($file);  
//echofile_get_contents($filename);  
//readfile($filename);  
}  
//下载或取消后,删除临时文件  
$del_result=@unlink($res_filepath);  
if($del_result==true){  
@unlink($res_filepath);  
}  
?>  
网上其他方式  
第一种:  
<?php  
functiondownfile(){  
$filename=realpath("resume.html");//文件名  
$date=date("Ymd-H:i:m");  
Header("Content-type:application/octet-stream");  
Header("Accept-Ranges:bytes");  
Header("Accept-Length:".filesize($filename));  
header("Content-Disposition:attachment;filename={$date}.doc");  
echofile_get_contents($filename);  
readfile($filename);  
}  
downfile();  
?>  
或  
<?php  
functiondownfile($fileurl){  
ob_start();  
$filename=$fileurl;  
$date=date("Ymd-H:i:m");  
header("Content-type:application/octet-stream");  
header("Accept-Ranges:bytes");  
header("Content-Disposition:attachment;filename={$date}.doc");  
$size=readfile($filename);  
header("Accept-Length:".$size);  
}  
$url="url地址";  
downfile($url);  
?>  
第二种:  
<?php  
functiondownfile($fileurl){  
$filename=$fileurl;  
$file=fopen($filename,"rb");  
Header("Content-type:application/octet-stream");  
Header("Accept-Ranges:bytes");  
Header("Content-Disposition:attachment;filename=4.doc");  
$contents="";  
while(!feof($file)){  
$contents.=fread($file,8192);  
}  
echo$contents;  
fclose($file);  
}  
$url="url地址";  
downfile($url);  
?>  
PHP实现下载文件的两种方法  
方法1:  
<?php  
/**  
*下载文件,header函数实现  
*copyright by www.92jzh.com  
*/  
header('Content-Description:FileTransfer');  
header('Content-Type:application/octet-stream');  
header('Content-Disposition:attachment;filename='.basename($filepath));  
header('Content-Transfer-Encoding:binary');  
header('Expires:0′);  
header('Cache-Control:must-revalidate,post-check=0,pre-check=0′);  
header('Pragma:public');  
header('Content-Length:'.filesize($filepath));  
readfile($file_path);  
?>  
了解php中header函数的用法  
方法2:  
<?php  
//文件下载,readfile实现  
$fileinfo=pathinfo($filename);  
header('Content-type:application/x-'.$fileinfo['extension']);  
header('Content-Disposition:attachment;filename='.$fileinfo['basename']);  
header('Content-Length:'.filesize($filename));  
readfile($thefile);  
exit();  
?>  

标签:文件,filepath,res,filename,Content,header,file,php,四种
来源: https://blog.51cto.com/u_15045148/2973677

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有