您好,欢迎访问一九零五行业门户网

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

这篇文章主要介绍了php实现的文件操作类及文件下载功能,结合实例形式分析了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实现文件下载的发法
php使用curl实现ftp文件下载功能的方法
以上就是php实现的文件操作类及文件下载功能的详细内容。
其它类似信息

推荐信息