0

这一切有点新,但我试图在后台将文件写入服务器上的磁盘时显示网页。我让一个简单的页面加载,然后将 AJAX 响应发送到第二个脚本,该脚本处理实际的文件操作。我这样做是为了让用户在生成文件时不会等待 30 多秒来加载一个简单的页面,并试图避免浏览器超时。文件写入后,我想重定向到它。但是,该文件永远不会被创建,并且重定向会直接将您发送到 404,尽管 AJAX 请求总是返回成功的状态代码。

例子

index.php

<html>
  <head>
    <script src="js/jquery-1.8.3.min.js"></script>
  </head>
  <body>
    <script>
      $.ajax({
        url: "out.php",
        method: "get",
        data: { 'answer' : 42 },
        success: function(data, status, jqxhr) {
          alert(jqxhr.responseText);
          $("body").append("<meta http-equiv='refresh' content='0;out.log'>");
        }
      });
    </script>
  </body>
</html>

out.php

<?php
  echo "WHAT IS HAPPENING....";
  $fd = fopen("out.log", "wb");
  fwrite($fd, "Not this... " . $_GET['answer']);
  fclose($fd);
?>

out.php如果我使用 运行它,它会按我的预期工作php-cgi out.php answer=42,但同样,当通过浏览器访问时,什么都不会被写入。

有什么方法可以out.php创建和写入out.log

4

1 回答 1

0

事实证明,我根本没有权限在我试图使用的目录中写入文件......经过一点chown魔法,现在一切都为我工作了。

于 2013-02-13T16:17:18.623 回答