17 use Psr\Http\Message\UploadedFileInterface;
38 $serverParameters = $_SERVER;
39 $headers = static::prepareHeaders($serverParameters);
41 $method = $serverParameters[
'REQUEST_METHOD'] ??
'GET';
42 $uri =
new Uri(GeneralUtility::getIndpEnv(
'TYPO3_REQUEST_URL'));
50 static::normalizeUploadedFiles($_FILES)
53 if (!empty($_COOKIE)) {
54 $request = $request->withCookieParams($_COOKIE);
56 $queryParameters = GeneralUtility::_GET();
57 if (!empty($queryParameters)) {
58 $request = $request->withQueryParams($queryParameters);
60 $parsedBody = GeneralUtility::_POST();
61 if (empty($parsedBody) && in_array($method, [
'PUT',
'PATCH',
'DELETE'])) {
62 parse_str(file_get_contents(
'php://input'), $parsedBody);
64 if (!empty($parsedBody)) {
65 $request = $request->withParsedBody($parsedBody);
80 foreach ($server as $key => $value) {
81 if (strpos($key,
'HTTP_COOKIE') === 0) {
86 if (strpos($key,
'HTTP_') === 0) {
87 $name = str_replace(
'_',
' ', substr($key, 5));
88 $name = str_replace(
' ',
'-', ucwords(strtolower($name)));
89 $name = strtolower($name);
90 $headers[$name] = $value;
91 } elseif (strpos($key,
'CONTENT_') === 0) {
92 $name = substr($key, 8);
93 $name =
'Content-' . (($name ===
'MD5') ? $name : ucfirst(strtolower($name)));
94 $name = strtolower($name);
95 $headers[$name] = $value;
113 $normalizedFileUploads = [];
114 foreach ($files as $key => $value) {
115 if ($value instanceof UploadedFileInterface) {
116 $normalizedFileUploads[$key] = $value;
117 } elseif (is_array($value)) {
118 if (isset($value[
'tmp_name'])) {
120 if ($uploadedFiles) {
121 $normalizedFileUploads[$key] = $uploadedFiles;
127 throw new \InvalidArgumentException(
'Invalid value in files specification.', 1436717282);
130 return $normalizedFileUploads;
144 if (is_array($value[
'tmp_name'])) {
146 foreach (array_keys($value[
'tmp_name']) as $key) {
148 'tmp_name' => $value[
'tmp_name'][$key],
149 'size' => $value[
'size'][$key],
150 'error' => $value[
'error'][$key],
151 'name' => $value[
'name'][$key],
152 'type' => $value[
'type'][$key]
156 $files[$key] = $result;
161 if (!empty($value[
'tmp_name'])) {
162 return new UploadedFile($value[
'tmp_name'], $value[
'size'], $value[
'error'], $value[
'name'], $value[
'type']);