Invoke-WebRequest не загружает файл на сервер
Я пытаюсь отправить файлы 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.
Что я делаю неправильно?
1 ответ
Из-за моей версии Powershell лучше всего работало решение @mario, представляющее собой конструкцию MIME вручную, как показано в примере 2 документа v5.1: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-5.1
Приветствия.