Я пытаюсь автоматизировать загрузку файлов PDF в сценарий PHP с помощью бесплатного программного обеспечения PDFCreator Функция HTTP Upload.Я предполагал, что это выполнит стандартную загрузку 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, похоже, не работает.