可以在html中执行.exe并获取控制台输出吗?

时间:2014-01-30 15:33:48

标签: php execute

是否可以调用.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完成,然后返回最后一个字符串。但这对我来说不是实时的!

1 个答案:

答案 0 :(得分:1)

您可以使用http://www.php.net/manual/en/function.proc-open.php

文档甚至有关于如何操作的示例。