setDisposition('attachment'); $this->setContentType('application/octet-stream'); $this->_mimeTypes = $mimeTypes; } /** * Get the nesting level used for this attachment. * * Always returns {@link LEVEL_MIXED}. * * @return integer */ public function getNestingLevel() { return self::LEVEL_MIXED; } /** * Get the Content-Disposition of this attachment. * * By default attachments have a disposition of "attachment". * * @return string */ public function getDisposition() { return $this->_getHeaderFieldModel('Content-Disposition'); } /** * Set the Content-Disposition of this attachment. * * @param string $disposition * * @return Swift_Mime_Attachment */ public function setDisposition($disposition) { if (!$this->_setHeaderFieldModel('Content-Disposition', $disposition)) { $this->getHeaders()->addParameterizedHeader( 'Content-Disposition', $disposition ); } return $this; } /** * Get the filename of this attachment when downloaded. * * @return string */ public function getFilename() { return $this->_getHeaderParameter('Content-Disposition', 'filename'); } /** * Set the filename of this attachment. * * @param string $filename * * @return Swift_Mime_Attachment */ public function setFilename($filename) { $this->_setHeaderParameter('Content-Disposition', 'filename', $filename); $this->_setHeaderParameter('Content-Type', 'name', $filename); return $this; } /** * Get the file size of this attachment. * * @return integer */ public function getSize() { return $this->_getHeaderParameter('Content-Disposition', 'size'); } /** * Set the file size of this attachment. * * @param integer $size * * @return Swift_Mime_Attachment */ public function setSize($size) { $this->_setHeaderParameter('Content-Disposition', 'size', $size); return $this; } /** * Set the file that this attachment is for. * * @param Swift_FileStream $file * @param string $contentType optional * * @return Swift_Mime_Attachment */ public function setFile(Swift_FileStream $file, $contentType = null) { $this->setFilename(basename($file->getPath())); $this->setBody($file, $contentType); if (!isset($contentType)) { $extension = strtolower(substr( $file->getPath(), strrpos($file->getPath(), '.') + 1 )); if (array_key_exists($extension, $this->_mimeTypes)) { $this->setContentType($this->_mimeTypes[$extension]); } } return $this; } }