如何将本地计算机上的CSV文件传递到PHP服务器,以便powershell能够处理它

如何将本地计算机上的CSV文件传递到PHP服务器,以便powershell能够处理它,php,powershell,csv,Php,Powershell,Csv,我找遍了,没能找到我要找的东西。这是我第一次使用PHP,我对powershell很熟悉。基本上,我有一个PHP页面demo.PHP,它有一个文件选择文本框,提示用户选择一个CSV文件,该文件将保存在本地系统中。当他们单击进程按钮时,我希望CSV文件或内容被发送到PHP服务器,供我的ps1脚本使用。在选择文件时,我相信它会将文件位置传递给ps1,但由于它位于我的本地C:\,导入csv命令无法在服务器上找到它。那只是我自己的想法,我完全可以离开 以下是我的基本示例,它们将完成我试图解决的问题: de

我找遍了,没能找到我要找的东西。这是我第一次使用PHP,我对powershell很熟悉。基本上,我有一个PHP页面demo.PHP,它有一个文件选择文本框,提示用户选择一个CSV文件,该文件将保存在本地系统中。当他们单击进程按钮时,我希望CSV文件或内容被发送到PHP服务器,供我的ps1脚本使用。在选择文件时,我相信它会将文件位置传递给ps1,但由于它位于我的本地C:\,导入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>
希望我用例子解释得足够好。如果我遗漏了什么,请告诉我。我希望最终结果将CSV的详细信息从powershell写回PHP,以便我知道我可以围绕它来塑造我的实际脚本。我想一旦我明白了,我可以继续做我需要的事情


感谢您抽出时间

在powershell中记录formfile参数的值,我很确定它不会包含正确的路径。我已经有一段时间没有使用php了,但是如果文件应该上传到您服务器上的一个目录中,请查看,谢谢您为我指明了方向。是时候学习了:
param([string]$formfile = "formfile");
import-CSV $formFile | forEach {
    write-output "Item: $_.Item <br />"
    write-output "Type: $_.Type <br />"
    write-output "$("-" * 25) <br />"
}
Item,Type
1001,Red
1002,Blue
1009,Yellow