繁体   English   中英

如何将PHP中的文件保存到比当前目录更高的目录中?

[英]How can I save a file in PHP to a directory higher than current?

该脚本位于myusername / public_html / item / index.php中

保存文件的代码:

$filename = $_SERVER['DOCUMENT_ROOT'].'/../data/guestbook.txt';
        $filehandle = fopen($filename, 'ab+') or die("<p>Unable to create the file!</p>\n".$filename);
        flock($filehandle, LOCK_EX) or die("<p>Unable to lock the file!</p>\n");
        fwrite($filehandle, $new_entry) or die("<p>Unable to write to the file!</p>\n");
        fclose($filehandle);

由于某种原因,它在fopen上失败,并且文件名实际上实际上是/../而不是导航到正确的路径。

怎么办,怎么办?

由于某种原因,它在打开时失败

编程中没有“某些原因”。 总有一定的原因。
而且你必须知道。

文件名实际上实际上是/../

那就是你写的,没什么好抱怨的。

如何将PHP中的文件保存到比当前目录更高的目录中?

从技术上讲,您将其设置为正确。

但是,除了错误的路径创建方式外,还有其他原因。
是的,总是有很多原因导致程序失败!

怎么办,怎么办?

运行此代码,然后查看其内容。

ini_set('display_errors',1);
error_reporting(E_ALL);
$filename = $_SERVER['DOCUMENT_ROOT'].'/../data/guestbook.txt';
file_put_contents($filename,$new_entry);

它会告诉您失败的原因。

如果php脚本位于item文件夹中,并且item和data在目录层次结构中处于同一级别,则可以这样编码

$savedir = '../data/';
$filename = $savedir.'guestbook.txt';

通过“ chown -R apache:apache”和“ chmod 755”确保apache用户具有对该目录的写访问权。

您的代码中的“ /../”可能给出了错误。 尝试删除第一个正斜杠。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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