是否可以调用.exe(控制台应用程序)并在我的网页上实时获取控制台输出?
我知道PHP的命令shell_exec()
。有了这个,我可以执行我的.exe。但如果控制台的输出显示为HTML代码,那将会很棒。通过这种方式,用户将始终知道应用程序的确切状态。
如果可以的话,你能给我一些关键词我可以搜索它吗?
编辑: 我要上传一个视频。
HTML:
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<input type="file" name="file" id="file"><br>
<input type="submit" name="uploadbtn" value="Upload Video">
此文件转到php脚本进行验证:
PHP脚本:
if (in_array($extension, $allowedExts))
{
echo "<p>";
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
if (file_exists("../Videos/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"../Videos/" . $_FILES["file"]["name"]);
echo "Stored in: " . "Videos/" . $_FILES["file"]["name"];
$output = shell_exec("Extractvideo.exe $_FILES["file"]["name"]");
echo "<pre>$output</pre>";
}
?>
<p>File erfolgreich hochgeladen!</p>
<br/>
<a href="watch.php">Hier gehts zur Videoliste</a>
<?php
}
echo "</p>";
}
else
{
echo "Invalid file";
}
?>
我得到以下输出:
上传:ELL_PART_5_768k.wmv类型:video / x-ms-wmv文件大小:12964.57421875 kB存储在:Videos / ELL_PART_5_768k.wmv
档案erfolgreich hochgeladen!
我的“Videoextract.exe”会转换视频。 在转换时,它会提供有关它的实际状态的信息。
示例控制台应用程序:
Video is going to be rendered
20%
40%
60%
80%
100%
Success!
如果用户可以实时获取控制台应用程序的输出,那就太好了!
因为我的控制台应用程序有一个内置的错误处理程序。所以我可以在控制台应用程序中返回任何错误,而不是在PHP中重写它。
此外,如果用户可以看到整个过程会很好,所以他知道它什么时候结束。
如果我使用
<?php
$output = shell_exec('Extractvideo.exe');
echo "<pre>$output</pre>";
?>
脚本将等待UNTIL完成,然后返回最后一个字符串。但这对我来说不是实时的!