文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php教程>php保存文件的方法

php保存文件的方法

时间:2021-07-13  来源:互联网

今天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>
               <p 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>
                   -->
               </p>
             </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爱好者其它相关文章!

相关阅读更多 +
最近更新
排行榜 更多 +
元梦之星最新版手游

元梦之星最新版手游

棋牌卡牌 下载
我自为道安卓版

我自为道安卓版

角色扮演 下载
一剑斩仙

一剑斩仙

角色扮演 下载