繁体   English   中英

使用PHP脚本发布保存文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM