3 final class PhabricatorMailAttachment
extends Phobject
{
11 public function __construct($data, $filename, $mimetype) {
12 $this->setData($data);
13 $this->setFilename($filename);
14 $this->setMimeType($mimetype);
17 public function getData() {
21 public function setData($data) {
26 public function getFilename() {
27 return $this->filename
;
30 public function setFilename($filename) {
31 $this->filename
= $filename;
35 public function getMimeType() {
36 return $this->mimetype
;
39 public function setMimeType($mimetype) {
40 $this->mimetype
= $mimetype;
44 public function toDictionary() {
46 $iterator = new ArrayIterator(array($this->getData()));
48 $source = id(new PhabricatorIteratorFileUploadSource())
49 ->setName($this->getFilename())
50 ->setViewPolicy(PhabricatorPolicies
::POLICY_NOONE
)
51 ->setMIMEType($this->getMimeType())
52 ->setIterator($iterator);
54 $this->file
= $source->uploadFile();
58 'filename' => $this->getFilename(),
59 'mimetype' => $this->getMimeType(),
60 'filePHID' => $this->file
->getPHID(),
64 public static function newFromDictionary(array $dict) {
67 $file_phid = idx($dict, 'filePHID');
69 $file = id(new PhabricatorFileQuery())
70 ->setViewer(PhabricatorUser
::getOmnipotentUser())
71 ->withPHIDs(array($file_phid))
74 $dict['data'] = $file->loadFileData();
78 $attachment = new self(
80 idx($dict, 'filename'),
81 idx($dict, 'mimetype'));
84 $attachment->file
= $file;