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

Приветствия.

Другие вопросы по тегам