12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?php
- /** @package verysimple::HTTP */
- /**
- * Encapsulates a file upload.
- *
- * Utility class for dealing with file uploads and converting them into
- * a string that is easily insertable into a database
- *
- * @package verysimple::HTTP
- * @author VerySimple Inc.
- * @copyright 1997-2007 VerySimple, Inc. http://www.verysimple.com
- * @license http://www.gnu.org/licenses/lgpl.html LGPL
- * @version 1.0
- */
- class FileUpload
- {
- public $Name;
- public $Size;
- public $Type;
- public $Extension;
- public $Data;
-
- /**
- * Returns a file upload as xml that is ready to save to a file or database
- *
- * @param string $fieldname
- * @return string
- */
- public function ToXML($base64 = true)
- {
- return "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n"
- . "<file>\r\n"
- . "<name>".$this->Name."</name>\r\n"
- . "<size>".$this->Size."</size>\r\n"
- . "<type>".$this->Type."</type>\r\n"
- . "<Extension>".$this->Extension."</Extension>\r\n"
- . "<encoding>" . ($base64 ? "base64" : "none") . "</encoding>\r\n"
- . "<data>" . ($base64 ? base64_encode($this->Data) : $this->Data) . "</data>\r\n"
- . "</file>";
- }
-
- /**
- * Loads this FileUpload object from previously obtained from ToXML()
- *
- * @param string $xml
- */
- public function FromXML($xml)
- {
- $sxo = new SimpleXMLElement($xml);
-
- if($sxo->encoding == "base64")
- {
- $this->Data = base64_decode($sxo->data);
- }
- else
- {
- $this->Data = $sxo->data;
- }
-
- $this->Name = $attachment->name;
- $this->Type = $attachment->type;
- $this->Size = $attachment->size;
- $this->Extension = $attachment->extension;
- }
-
- /**
- * Saves the file upload to the given path
- * @param string $path full path to save directory (trailing slash required)
- * @param string $alternate_name (optional) if not provided, $this->Name is used
- * @param bool $chmod (default=true) set file permission to 666
- */
- public function SaveTo($path, $alternate_name="", $chmod=true)
- {
- $name = $alternate_name ? $alternate_name : $this->Name;
-
- $fullpath = $path . $name;
- $handle = fopen($fullpath, "w");
- fwrite($handle, $this->Data);
- fclose($handle);
-
- if ($chmod) @chmod($fullpath, 0666);
- }
- }
- ?>
|