⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.50
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
psa-horde
/
imp
/
lib
/
Compose
/
Edit File: Attachment.php
<?php /** * Copyright 2013-2017 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (GPL). If you * did not receive this file, see http://www.horde.org/licenses/gpl. * * @category Horde * @copyright 2013-2017 Horde LLC * @license http://www.horde.org/licenses/gpl GPL * @package IMP */ /** * Attachment data for an outgoing compose message. * * @author Michael Slusarz <slusarz@horde.org> * @category Horde * @copyright 2013-2017 Horde LLC * @license http://www.horde.org/licenses/gpl GPL * @package IMP * * @property-read boolean $linked Should this attachment be linked? * @property-read Horde_Url $link_url The URL, if the attachment is linked. * @property-read IMP_Compose_Attachment_Storage $storage The storage object. * @property-read string $tmpfile The temporary file location on the local * filesystem. */ class IMP_Compose_Attachment implements Serializable { /** * Force this attachment to be linked? * * @var boolean */ public $forceLinked = false; /** * Attachment ID. * * @var integer */ public $id; /** * Is this part associated with multipart/related data? * * @var boolean */ public $related = false; /** * Compose object cache ID. * * @var string */ protected $_composeCache; /** * Does the part contain the attachment contents? * * @var boolean */ protected $_isBuilt = false; /** * Should this attachment be linked? * * @var boolean */ protected $_linked = null; /** * MIME part object. * * @var Horde_Mime_Part */ protected $_part; /** * The unique identifier for the file. * * @var string */ protected $_uuid = null; /** * Constructor. * * @param IMP_Compose $ob Compose object. * @param Horde_Mime_Part $part MIME part object. * @param string $tmp_file Temporary filename containing the data. */ public function __construct(IMP_Compose $ob, Horde_Mime_Part $part, $tmp_file) { $this->id = ++$ob->atcId; $this->_composeCache = strval($ob); $this->_part = $part; $this->_uuid = strval(new Horde_Support_Uuid()); $storage = $this->storage; $storage->write($tmp_file, $this->getPart()); /* Need to save this information now, since it is possible that * storage backends change their linked status based on the data * written to the backend. */ $this->_linked = $storage->linked; } /** */ public function __get($name) { global $injector; switch ($name) { case 'linked': return ($this->forceLinked || ($this->_linked === true)); case 'link_url': return $this->storage->link_url; case 'storage': $linked = $this->linked ? 'linked' : (is_null($this->_linked) ? null : 'atc'); return $injector->getInstance('IMP_Factory_ComposeAtc')->create(null, $this->_uuid, $linked); case 'tmpfile': return $this->storage->getTempFile(); } } /** * Return the MIME part object. * * @param boolean $build If true, ensures the part contains the data. * * @return Horde_Mime_Part MIME part object. * @throws IMP_Compose_Exception */ public function getPart($build = false) { if ($build && !$this->_isBuilt) { $this->_part->setContents( $this->storage->read()->stream, array('stream' => true) ); $this->_isBuilt = true; } return $this->_part; } /** * Delete the attachment data. */ public function delete() { if (!$this->linked) { try { $this->storage->delete(); } catch (Exception $e) {} } } /** * Get a URL of the data. * * @return Horde_Url URL to display the attachment data. */ public function viewUrl() { return Horde::url('view.php', true)->add(array( 'actionID' => 'compose_attach_preview', 'composeCache' => strval($GLOBALS['injector']->getInstance('IMP_Factory_Compose')->create($this->_composeCache)), 'id' => $this->id )); } /* Serializable methods. */ /** */ public function serialize() { /* Don't store Mime_Part data. Can't use clone here ATM, since there * appears to be a PHP bug. Since this is an object specific to IMP * (and we are only using in a certain predictable way), it should * be ok to directly alter the MIME part object without any ill * effects. */ $this->_part->clearContents(); $this->_isBuilt = false; return $GLOBALS['injector']->getInstance('Horde_Pack')->pack( array( $this->_composeCache, $this->id, $this->_linked, $this->_part, $this->related, $this->_uuid ), array( 'compression' => false, 'phpob' => true ) ); } /** */ public function unserialize($data) { list( $this->_composeCache, $this->id, $this->_linked, $this->_part, $this->related, $this->_uuid ) = $GLOBALS['injector']->getInstance('Horde_Pack')->unpack($data); } }
Simpan