Я пытаюсь отправить файлы HTTP на сервер из Powershell на моем компьютере с Windows. На сервере используется скрипт PHP (вырезанный из версии w3schools здесь: https://www.w3schools.com/php/php_file_upload.asp):
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
Используя файл HTML, показанный в учебнике w3schools, и Chrome в качестве браузера, я могу без проблем загружать файлы с помощью этого скрипта. Однако я не могу загрузить с помощью Invoke-WebRequest.
Вот команда, которую я использую:
Invoke-WebRequest -InFile "C:\test.txt" -ContentType "text/plain" -Method post -Uri http://example.com/upload/upload.php
И сегмент вывода:
StatusCode : 200
StatusDescription : OK
Content : Sorry, there was an error uploading your file.
Что я делаю не так?
-InFile
будет потреблять все тело POST. Однако PHP не увидит никаких$_FILES
, если только запрос не пришел с полезной нагрузкойmultipart/form-data
. - person mario   schedule 28.01.2019Invoke-RestMethod
- person HariHaran   schedule 28.01.2019-Body
состоит из[System.Net.Http.MultipartFormDataContent]::new()
- person mario   schedule 28.01.2019Unable to find type [System.Net.Http.Headers.ContentDispositionHeaderValue].
- person Connor Varney   schedule 28.01.2019php://input
(простые данные загрузки, тогда без имени файла). - person mario   schedule 28.01.2019