这篇文章主要介绍了php怎么保存文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
php保存文件的方法:首先创建一个PHP示例文件;然后生成文件;最后用代码“if(isset($_GET["filepath"])) {...}”实现下载保存即可。
本文操作环境:windows7系统、PHP7.1版,DELL G3电脑
php保存文件的方法
PHP 下载保存文件到本地
经常需要点击按钮,然后弹出一个对话框,保存下载文件。
最常见的方式,就用<a>链接实现,例如:
<a href="xxx/youfile.txt"> youfile.txt </a>
本文介绍的下载保存方式,是通过生成文件后,然后用代码实现下载保存。
完整示例(推荐)
<?php
/**
* 下载文件header函数
* copyright by www.mimvp.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>
<div style='margin-left: 20px'>
<br>
<font color='blue'>$file_basename</font> 是临时文件已过期,服务器不保存!
<br><br>
请提取最新代理: <a href='../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);
echo fread($file, $file_filesize);
fclose($file);
// echo file_get_contents($filename);
// readfile($filename);
}
// 下载或取消后,删除临时文件
$del_result = @unlink($res_filepath);
if ($del_result == true) {
@unlink($res_filepath);
}
?>
网上其他方式
第一种:
<?php
function downfile() {
$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");
echo file_get_contents($filename);
readfile($filename);
}
downfile();
?>
或
<?php
function downfile($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
function downfile($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函数实现
*/
header('Content-Description: File Transfer');
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();
?>
感谢你能够认真阅读完这篇文章,希望小编分享的“php怎么保存文件”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。