php保存文件的方法
2022-12-02 09:01:16
74
{{single.collect_count}}

php保存文件的方法:首先创建一个PHP示例文件;然后生成文件;最后用代码“if(isset($_GET["filepath"])) {...}”实现下载保存即可。

php入门到就业线上直播课:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用

本文操作环境: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视频教程

以上就是php保存文件的方法的详细内容,更多请关注php中文网其它相关文章!

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}