Почему PHP не разбирает HTTP-загрузку в $_FILES?
Я пытаюсь автоматизировать загрузку PDF-файлов в сценарий PHP с помощью бесплатной функции загрузки PDFCreator в программном обеспечении PDFCreator. Я предполагал, что это выполнит стандартную загрузку POST на любой введенный URL. Однако, когда я выгружаю $_GET, $_POST и $_FILES в мой PHP-скрипт, они все пусты. Вместо этого заголовки указывают, что выполняется многочастный запрос, а file_get_contents('php://input') возвращает необработанные данные файла PDF.
Почему PHP не анализирует необработанный ввод в $_FILES, и как мне правильно проанализировать этот необработанный многокомпонентный запрос, чтобы убедиться, что файл не поврежден? Безопасно ли просто читать php://input? Но тогда я должен вычеркнуть строки типа контента и разделители границ из нескольких частей... это лучший способ?
Нужно ли отправлять 100 ответов, чтобы обеспечить передачу всей загрузки?
Вот сырая свалка:
Timestamp: 01/21/2019 04:40:12
$_GET = array (
)
$_POST = array (
)
$_FILES = array (
)
getallheaders() = array (
'Content-Type' => 'multipart/mixed; boundary="e243432e-057e-4dae-9772-2443ceea2b77"',
'Host' => '[my domain]',
'Content-Length' => '15761',
'Expect' => '100-continue',
'Connection' => 'Keep-Alive',
)
php://input =
--e243432e-057e-4dae-9772-2443ceea2b77
Content-Type: application/pdf
Content-Disposition: form-data; filename=14-1.pdf
%PDF-1.4
%Çì¢
5 0 obj
<</Length 6 0 R/Filter /FlateDecode>>
stream
... SNIPPED ...
<< /Size 15 /Root 1 0 R /Info 2 0 R
/ID [<8565606A1739C9E3D79E8D7E94705784><8565606A1739C9E3D79E8D7E94705784>]
>>
startxref
15139
%%EOF
--e243432e-057e-4dae-9772-2443ceea2b77--
ВОЗМОЖНОЕ РЕШЕНИЕ: я думаю, что может быть проще вызвать скрипт PowerShell и использовать функцию Invoke-RestMethod, которая выполняет правильную многоэлементную POST-загрузку в скрипт, например:
Invoke-RestMethod -Uri [my uri] -Method Post -InFile $file_to_upload -UseDefaultCredentials
Это правильно анализируется PHP, кажется, работает отлично. Но мне все еще интересно узнать о другой загрузке - как бы я справился с этим?
FAIL: Нет, PDFCreator, похоже, запускает пакетный процесс без доступа к GUI. Поэтому использование интерактивных подсказок в Powershell, включая окна сообщений Windows GUI, похоже, не работает.