首页 > 语言 > PHP > 正文

PHP实现的文件操作类及文件下载功能示例

2024-05-04 23:53:56
字体:
来源:转载
供稿:网友

本文实例讲述了PHP实现的文件操作类及文件下载功能。分享给大家供大家参考,具体如下:

文件操作类:

<?php // Copyright 2005, Lee Babin (lee@thecodeshoppe.com) // This code may be used and redistributed without charge // under the terms of the GNU General Public // License version 2.0 or later -- www.gnu.org // Subject to the retention of this copyright // and GPL Notice in all copies or derived works class cfile {  //The path to the file we wish to work with.  protected $thepath;  //Error messages in the form of constants for ease of use.  const FOUNDERROR = "Sorry, the file in question does not exist.";  const PERMERROR = "Sorry, you do not have the proper permissions on this file";  const OPENERROR = "Sorry, the file in question could not be opened.";  const CLOSEERROR = "Sorry, the file could not be closed.";  //The constructor function.  public function __construct (){   $num_args = func_num_args();   if($num_args > 0){    $args = func_get_args();    $this->thepath = $args[0];   }  }  //A function to open the file.  private function openfile ($readorwrite){    //First, ensure the file exists.    try {      if (file_exists ($this->thepath)){        //Now, we need to see if we are reading or writing or both.        $proceed = false;        if ($readorwrite == "r"){          if (is_readable($this->thepath)){            $proceed = true;          }        } elseif ($readorwrite == "w"){          if (is_writable($this->thepath)){            $proceed = true;          }        } else {          if (is_readable($this->thepath) && is_writable($this->thepath)){            $proceed = true;          }        }        try {          if ($proceed){            //We can now attempt to open the file.            try {              if ($filepointer = fopen ($this->thepath, $readorwrite)){                return $filepointer;              } else {                throw new exception (self::OPENERROR);                return false;              }            } catch (exception $e) {              echo $e->getmessage();            }          } else {            throw new exception (self::PERMERROR);          }        } catch (exception $e) {          echo $e->getmessage();        }      } else {        throw new exception (self::FOUNDERROR);      }    } catch (exception $e) {      echo $e->getmessage();    }  }  //A function to close a file.  function closefile () {    try {      if (!fclose ($this->thepath)){        throw new exception (self::CLOSEERROR);      }    } catch (exception $e) {      echo $e->getmessage();    }  }  //A function to read a file, then return the results of the read in a string.  public function read () {    //First, attempt to open the file.    $filepointer = $this->openfile ("r");    //Now, return a string with the read data.    if ($filepointer != false){      //Then we can read the file.      return fgets ($filepointer);    }    //Lastly, close the file.    $this->closefile ();  }  //A function to write to a file.  public function write ($towrite) {    //First, attempt to open the file.    $filepointer = $this->openfile ("w");    //Now, return a string with the read data.    if ($filepointer != false){      //Then we can read the file.      return fwrite ($filepointer, $towrite);    }    //Lastly, close the file.    $this->closefile ();  }  //A function to append to a file.  public function append ($toappend) {    //First, attempt to open the file.    $filepointer = $this->openfile ("a");    //Now, return a string with the read data.    if ($filepointer != false){      //Then we can read the file.      return fwrite ($filepointer, $toappend);    }    //Lastly, close the file.    $this->closefile ();  }  //A function to set the path to a new file.  public function setpath ($newpath) {    $this->thepath = $newpath;  } }?>
<?php  $myfile = new cfile ("test.txt");  //Now, let's try reading it.  echo $myfile->read();  //Then let's try writing to the file.  $myfile->write ("Hello World!");  //Then, let's try appending.  $myfile->append ("Hello Again!");?>

文件下载:

<?php$filename = 'file1.txt';$file = fopen($filename, 'r');Header("Expires: 0");Header("Pragma: public");Header("Cache-Control: must-revalidate, post-check=0, pre-check=0");Header("Cache-Control: public");Header("Content-Length: ". filesize($filename));Header("Content-Type: application/octet-stream");Header("Content-Disposition: attachment; filename=".$filename);readfile($filename);?>

希望本文所述对大家PHP程序设计有所帮助。


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选