Invoke-WebRequest не загружает файл на сервер - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь отправить файлы 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 Ответ

0 голосов
/ 28 января 2019

Из-за моей версии Powershell лучше всего работало решение @ mario, представляющее собой конструкцию MIME вручную, как показано в примере 2 документа v5.1: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-5.1

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

...