萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP實現文件操作類及文件下載功能的教程

PHP實現文件操作類及文件下載功能的教程

這篇文章講述了php中如何實現文件操作類及文件下載功能的教程,非常有用,感興趣的同學可以參考一下

本文實例講述了PHP實現的文件操作類及文件下載功能。分享給大家供大家參考,具體如下:

文件操作類:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 <?php  // Copyright 2005, Lee Babin ([email protected])  // 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  classcfile {   //The path to the file we wish to work with.   protected$thepath;   //Error messages in the form of constants for ease of use.   constFOUNDERROR ="Sorry, the file in question does not exist.";   constPERMERROR ="Sorry, you do not have the proper permissions on this file";   constOPENERROR ="Sorry, the file in question could not be opened.";   constCLOSEERROR ="Sorry, the file could not be closed.";   //The constructor function.   publicfunction__construct (){    $num_args= func_num_args();    if($num_args> 0){     $args= func_get_args();     $this->thepath =$args[0];    }   }   //A function to open the file.   privatefunctionopenfile ($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{                 thrownewexception (self::OPENERROR);                 returnfalse;               }             }catch(exception$e) {               echo$e->getmessage();             }           }else{             thrownewexception (self::PERMERROR);           }         }catch(exception$e) {           echo$e->getmessage();         }       }else{         thrownewexception (self::FOUNDERROR);       }     }catch(exception$e) {       echo$e->getmessage();     }   }   //A function to close a file.   functionclosefile () {     try{       if(!fclose ($this->thepath)){         thrownewexception (self::CLOSEERROR);       }     }catch(exception$e) {       echo$e->getmessage();     }   }   //A function to read a file, then return the results of the read in a string.   publicfunctionread () {     //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.       returnfgets($filepointer);     }     //Lastly, close the file.     $this->closefile ();   }   //A function to write to a file.   publicfunctionwrite ($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.       returnfwrite ($filepointer,$towrite);     }     //Lastly, close the file.     $this->closefile ();   }   //A function to append to a file.   publicfunctionappend ($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.       returnfwrite ($filepointer,$toappend);     }     //Lastly, close the file.     $this->closefile ();   }   //A function to set the path to a new file.   publicfunctionsetpath ($newpath) {     $this->thepath =$newpath;   }  } ?> 1 2 3 4 5 6 7 8 9 <?php   $myfile=newcfile ("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!"); ?>

文件下載:

1 2 3 4 5 6 7 8 9 10 11 12 <?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); ?>
copyright © 萬盛學電腦網 all rights reserved