Я искал по всему и не смог найти то, что я ищу. Это мой первый опыт работы с PHP, и я хорошо знаком с powershell. По сути, у меня есть страница PHP (demo.php), в которой будет текстовое поле выбора файла, которое предложит человеку выбрать файл CSV, который он будет иметь в своей локальной системе. Когда они нажимают кнопку процесса, я хочу, чтобы CSV-файл (или его содержимое) отправлялся на сервер PHP для использования моим сценарием ps1. При выборе файла я думаю, что он передает местоположение файла в ps1, но, поскольку он находится на моем локальном C: \, команда import-csv не может найти его там на сервере. (это только мое собственное мышление, я мог бы полностью уйти)
Вот мои основные примеры, которые помогут решить проблему, которую я пытаюсь выяснить:
demo.php:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Process Demo</title>
</head>
<body>
<?php
if(!isset($_POST["submit"]))
{
?>
<form name="ProcessForm" id="ProcessForm" action="demo.php" method="post" />
Select your CSV file: <input type="file" name="formFile" id="formfile" /><br /><br />
<input type="submit" name="submit" id="submit" value="Process" />
</form>
<?php
}
elseif((isset($_POST["submit"])) && (!empty($_POST["formFile"]))) {
$formfile = $_POST["formFile"];
$psScriptPath = "E:\\PS\\test.ps1";
$query = shell_exec("powershell -command $psScriptPath -formfile '$formfile' < NUL");
echo $query;
}
else
{
echo "Sorry, you did not complete all required fields. Please go back and try again.";
}
?>
</body>
</html>
Test.ps1:
param([string]$formfile = "formfile");
import-CSV $formFile | forEach {
write-output "Item: $_.Item <br />"write-output "Type: $_.Type <br />"write-output "$("-" * 25) <br />"}
CSV:
Item,Type
1001,Red
1002,Blue
1009,Yellow
Надеюсь, я достаточно хорошо объяснил на примерах. Дайте мне знать, если я что-то пропустил. Я хочу, чтобы конечный результат записывал и выводил подробности о CSV обратно в PHP из powershell, чтобы я знал, что могу создать вокруг него свой настоящий скрипт. Я думаю, что смогу продолжить с тем, что мне нужно, как только я это выясню.
Спасибо за ваше время
Задача ещё не решена.
Других решений пока нет …