Path: blob/master/src/applications/metamta/message/PhabricatorMailAttachment.php
12256 views
<?php12final class PhabricatorMailAttachment extends Phobject {34private $data;5private $filename;6private $mimetype;7private $file;8private $filePHID;910public function __construct($data, $filename, $mimetype) {11$this->setData($data);12$this->setFilename($filename);13$this->setMimeType($mimetype);14}1516public function getData() {17return $this->data;18}1920public function setData($data) {21$this->data = $data;22return $this;23}2425public function getFilename() {26return $this->filename;27}2829public function setFilename($filename) {30$this->filename = $filename;31return $this;32}3334public function getMimeType() {35return $this->mimetype;36}3738public function setMimeType($mimetype) {39$this->mimetype = $mimetype;40return $this;41}4243public function toDictionary() {44if (!$this->file) {45$iterator = new ArrayIterator(array($this->getData()));4647$source = id(new PhabricatorIteratorFileUploadSource())48->setName($this->getFilename())49->setViewPolicy(PhabricatorPolicies::POLICY_NOONE)50->setMIMEType($this->getMimeType())51->setIterator($iterator);5253$this->file = $source->uploadFile();54}5556return array(57'filename' => $this->getFilename(),58'mimetype' => $this->getMimeType(),59'filePHID' => $this->file->getPHID(),60);61}6263public static function newFromDictionary(array $dict) {64$file = null;6566$file_phid = idx($dict, 'filePHID');67if ($file_phid) {68$file = id(new PhabricatorFileQuery())69->setViewer(PhabricatorUser::getOmnipotentUser())70->withPHIDs(array($file_phid))71->executeOne();72if ($file) {73$dict['data'] = $file->loadFileData();74}75}7677$attachment = new self(78idx($dict, 'data'),79idx($dict, 'filename'),80idx($dict, 'mimetype'));8182if ($file) {83$attachment->file = $file;84}8586return $attachment;87}8889}909192