[英]Issue saving file with PHP script
我正在为自己制作的JavaScipt网站制作PHP脚本。
目的是当我单击按钮时将字符串的内容另存为HTML文件。
我正在使用jQuery发出Post请求。
我正在将Ubuntu OS与Apache 2服务器配合使用。 我正在写入的文件夹的权限为777(仅用于测试,将取消此权限)。
一个要求是PHP必须存在于另一个文件中。
问题是,每当我发出请求时,文件都会保存为空白。
一个要求是每个文件名必须是一个时间戳。 该文件具有正确的文件名,但没有内容。
到目前为止,这是我的代码:
<?php
$fileName = $_GET['fileNameData'];
$htmlImport = $_GET['htmlToSaveData'];
$htmlToSave = (string)$htmlImport;
$myFile = fopen($fileName, "w") or die('You do not have write permissions');
//fwrite($myFile, $htmlToSave);
file_put_contents($myFile, $htmlToSave);
fclose($myFile);
?>
我尝试了已注释掉的frwite函数,效果相同。
我已经通过传入参数($ argv [1]和$ argv [2])在终端中对此进行了测试。 很好
我为运行网站制作的JS如下所示:
var newURL = 'saveHTML.php/?fileNameData=' + fileName + '&htmlToSaveData=' + htmlToSave
$.post(newURL)
.done(function(){
alert('Your file saved as ...' + htmlToSave)
})
我也尝试过此代码,结果相同:
$.post('saveHTML.php/', {
fileNameData : fileName,
htmlToSaveData : htmlToSave
})
尽管htmlToSave相当长,而且实际上是我已转换为字符串的html文本,但fileName和htmlToSave都是字符串。
有人对这里发生的事情有想法吗? 我根本不是PHP开发人员。
我正在使用回调函数,因此可以确保在将字符串传递给PHP之前已收集了所有html。
我已在此处阅读并测试了有关此问题的建议,但没有结果。
编辑不用担心代码,我意识到这是一个安全问题,但这是一个学习项目,不会在生产中。
我马上就能知道你有
$myFile = fopen($fileName, "w") or die('You do not have write permissions');
//fwrite($myFile, $htmlToSave);
file_put_contents($myFile, $htmlToSave);
fclose($myFile);
file_put_contents
采用文件名,而不是句柄。 所以你只需要
file_put_contents($fileName, $htmlToSave);
编辑:我也觉得我应该指出,您不应该允许您的用户命名您的文件。 他们可能会对您的计算机做一些令人讨厌的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.