/** * @param Oxygen_Stream_Interface $body */ public function setBody($body) { if ($body !== null && !$body instanceof Oxygen_Stream_Interface) { $body = Oxygen_Stream_Stream::factory($body); } $this->body = $body; }
private function initialize() { if ($this->initialized === false) { if (file_exists($this->realPath)) { $handle = @fopen($this->realPath, "rb"); if ($handle !== false) { $this->stream = Oxygen_Stream_Stream::factory($handle); } } $this->initialized = true; } }
private function createPartStream(Oxygen_Http_MultipartResponsePart $part) { $stream = new Oxygen_Stream_Append(); foreach ($part->getHeaders() as $header => $value) { if (strcasecmp("content-location", $header) === 0) { // Content-Location can contain special characters (like \r\n for example) $value = urlencode($value); } $stream->addStream(Oxygen_Stream_Stream::factory(sprintf("%s: %s\r\n", strtolower($header), $value))); } $body = $part->getBody(); // Manually output content-transfer-encoding header $stream->addStream(Oxygen_Stream_Stream::factory(sprintf("content-transfer-encoding: %s\r\n", $part->getEncoding()))); switch ($part->getEncoding()) { case 'binary': // No action required break; case 'base64': $body = new Oxygen_Stream_Base64EncodedStream($body); break; default: throw new Oxygen_Exception(Oxygen_Exception::MULTIPART_ENCODING_NOT_SUPPORTED, array('encoding' => $part->getEncoding())); } $stream->addStream(Oxygen_Stream_Stream::factory("\r\n")); $stream->addStream($body); return $stream; }