Linux cesa-www-main 6.1.0-49-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64
Apache/2.4.68 (Debian)
Server IP : 10.218.0.2 & Your IP : 216.73.216.28
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
cesa.co.za /
vendor /
guzzlehttp /
psr7 /
src /
Delete
Unzip
Name
Size
Permission
Date
Action
Exception
[ DIR ]
drwxr-sr-x
2026-03-10 16:41
AppendStream.php
5.81
KB
-rw-r--r--
2026-03-10 16:41
BufferStream.php
3.14
KB
-rw-r--r--
2026-03-10 16:41
CachingStream.php
4.49
KB
-rw-r--r--
2026-03-10 16:41
DroppingStream.php
1.17
KB
-rw-r--r--
2026-03-10 16:41
FnStream.php
4.21
KB
-rw-r--r--
2026-03-10 16:41
Header.php
3.85
KB
-rw-r--r--
2026-03-10 16:41
HttpFactory.php
3
KB
-rw-r--r--
2026-03-10 16:41
InflateStream.php
1.38
KB
-rw-r--r--
2026-03-10 16:41
LazyOpenStream.php
1.06
KB
-rw-r--r--
2026-03-10 16:41
LimitStream.php
4.18
KB
-rw-r--r--
2026-03-10 16:41
Message.php
8.14
KB
-rw-r--r--
2026-03-10 16:41
MessageTrait.php
7.61
KB
-rw-r--r--
2026-03-10 16:41
MimeType.php
55.82
KB
-rw-r--r--
2026-03-10 16:41
MultipartStream.php
6.85
KB
-rw-r--r--
2026-03-10 16:41
NoSeekStream.php
524
B
-rw-r--r--
2026-03-10 16:41
PumpStream.php
4.49
KB
-rw-r--r--
2026-03-10 16:41
Query.php
3.95
KB
-rw-r--r--
2026-03-10 16:41
Request.php
3.81
KB
-rw-r--r--
2026-03-10 16:41
Response.php
4.79
KB
-rw-r--r--
2026-03-10 16:41
Rfc7230.php
661
B
-rw-r--r--
2026-03-10 16:41
ServerRequest.php
9.33
KB
-rw-r--r--
2026-03-10 16:41
Stream.php
7.21
KB
-rw-r--r--
2026-03-10 16:41
StreamDecoratorTrait.php
3.24
KB
-rw-r--r--
2026-03-10 16:41
StreamWrapper.php
4.53
KB
-rw-r--r--
2026-03-10 16:41
UploadedFile.php
4.98
KB
-rw-r--r--
2026-03-10 16:41
Uri.php
21.5
KB
-rw-r--r--
2026-03-10 16:41
UriComparator.php
1.12
KB
-rw-r--r--
2026-03-10 16:41
UriNormalizer.php
8.26
KB
-rw-r--r--
2026-03-10 16:41
UriResolver.php
8.38
KB
-rw-r--r--
2026-03-10 16:41
Utils.php
15.57
KB
-rw-r--r--
2026-03-10 16:41
Save
Rename
<?php declare(strict_types=1); namespace GuzzleHttp\Psr7; use Psr\Http\Message\StreamInterface; /** * Stream that when read returns bytes for a streaming multipart or * multipart/form-data stream. */ final class MultipartStream implements StreamInterface { use StreamDecoratorTrait; /** @var string */ private $boundary; /** @var StreamInterface */ private $stream; /** * @param array $elements Array of associative arrays, each containing a * required "name" key mapping to the form field, * name, a required "contents" key mapping to any * value accepted by Utils::streamFor() (scalar, * null, resource, StreamInterface, Iterator, or * callable), or an array for nested expansion. * Optional keys include "headers" (associative * array of custom headers) and "filename" (string * to send as the filename in the part). * When "contents" is an array, it is recursively * expanded into multiple fields using bracket notation * (e.g., name[0][key]). Empty arrays produce no fields. * The "filename" and "headers" options cannot be used * with array contents. * @param string $boundary You can optionally provide a specific boundary * * @throws \InvalidArgumentException */ public function __construct(array $elements = [], ?string $boundary = null) { $this->boundary = $boundary ?: bin2hex(random_bytes(20)); $this->stream = $this->createStream($elements); } public function getBoundary(): string { return $this->boundary; } public function isWritable(): bool { return false; } /** * Get the headers needed before transferring the content of a POST file * * @param string[] $headers */ private function getHeaders(array $headers): string { $str = ''; foreach ($headers as $key => $value) { $str .= "{$key}: {$value}\r\n"; } return "--{$this->boundary}\r\n".trim($str)."\r\n\r\n"; } /** * Create the aggregate stream that will be used to upload the POST data */ protected function createStream(array $elements = []): StreamInterface { $stream = new AppendStream(); foreach ($elements as $element) { if (!is_array($element)) { throw new \UnexpectedValueException('An array is expected'); } $this->addElement($stream, $element); } // Add the trailing boundary with CRLF $stream->addStream(Utils::streamFor("--{$this->boundary}--\r\n")); return $stream; } private function addElement(AppendStream $stream, array $element): void { foreach (['contents', 'name'] as $key) { if (!array_key_exists($key, $element)) { throw new \InvalidArgumentException("A '{$key}' key is required"); } } if (!is_string($element['name']) && !is_int($element['name'])) { throw new \InvalidArgumentException("The 'name' key must be a string or integer"); } if (is_array($element['contents'])) { if (array_key_exists('filename', $element) || array_key_exists('headers', $element)) { throw new \InvalidArgumentException( "The 'filename' and 'headers' options cannot be used when 'contents' is an array" ); } $this->addNestedElements($stream, $element['contents'], (string) $element['name']); return; } $element['contents'] = Utils::streamFor($element['contents']); if (empty($element['filename'])) { $uri = $element['contents']->getMetadata('uri'); if ($uri && \is_string($uri) && \substr($uri, 0, 6) !== 'php://' && \substr($uri, 0, 7) !== 'data://') { $element['filename'] = $uri; } } [$body, $headers] = $this->createElement( (string) $element['name'], $element['contents'], $element['filename'] ?? null, $element['headers'] ?? [] ); $stream->addStream(Utils::streamFor($this->getHeaders($headers))); $stream->addStream($body); $stream->addStream(Utils::streamFor("\r\n")); } /** * Recursively expand array contents into multiple form fields. * * @param array<array-key, mixed> $contents */ private function addNestedElements(AppendStream $stream, array $contents, string $root): void { foreach ($contents as $key => $value) { $fieldName = $root === '' ? sprintf('[%s]', (string) $key) : sprintf('%s[%s]', $root, (string) $key); if (is_array($value)) { $this->addNestedElements($stream, $value, $fieldName); } else { $this->addElement($stream, ['name' => $fieldName, 'contents' => $value]); } } } /** * @param string[] $headers * * @return array{0: StreamInterface, 1: string[]} */ private function createElement(string $name, StreamInterface $stream, ?string $filename, array $headers): array { // Set a default content-disposition header if one was no provided $disposition = self::getHeader($headers, 'content-disposition'); if (!$disposition) { $headers['Content-Disposition'] = ($filename === '0' || $filename) ? sprintf( 'form-data; name="%s"; filename="%s"', $name, basename($filename) ) : "form-data; name=\"{$name}\""; } // Set a default content-length header if one was no provided $length = self::getHeader($headers, 'content-length'); if (!$length) { if ($length = $stream->getSize()) { $headers['Content-Length'] = (string) $length; } } // Set a default Content-Type if one was not supplied $type = self::getHeader($headers, 'content-type'); if (!$type && ($filename === '0' || $filename)) { $headers['Content-Type'] = MimeType::fromFilename($filename) ?? 'application/octet-stream'; } return [$stream, $headers]; } /** * @param string[] $headers */ private static function getHeader(array $headers, string $key): ?string { $lowercaseHeader = strtolower($key); foreach ($headers as $k => $v) { if (strtolower((string) $k) === $lowercaseHeader) { return $v; } } return null; } }