Example of PHP file operations and File Download Functions,

Source: Internet
Author: User

Example of PHP file operations and File Download Functions,

This example describes the file operations and File Download functions implemented by PHP. We will share this with you for your reference. The details are as follows:

File Operation class:

<?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!");?>

File Download:

<?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);?>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.