这一切有点新鲜,但我正在尝试在后台将文件写入服务器上的磁盘时显示网页。我让一个简单的页面加载,然后将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
?
答案 0 :(得分:0)
事实证明,我根本没有权限在我试图使用的目录中写入文件......在chown
魔法之后,现在一切都在为我工作。