【发布时间】:2018-07-12 02:46:04
【问题描述】:
我正面临 PHP 上传脚本的这个奇怪问题。希望得到一些人的帮助。
下面是这个问题的详细说明:
DOCUMENT_ROOT 是“/var/www/html”
PHP 可以正常上传到名为“/var/www/html/uploads”的文件夹
在“/var/www/html/folder”有另一个目录托管不同的网页 相同的 PHP upload.sh 脚本无法将文件上传到“/var/www/html/directory/folder”目录。
“/var/www/html/directory/folder”和“/var/www/html/uploads”的文件夹权限已设置为 0777 两个文件夹使用相同的上传脚本。
以下值在两个文件夹中的upload.php 中设置。
$uploads = $_SERVER['DOCUMENT_ROOT'] . "folder/uploads/files/"
我尝试在 $uploads 中设置绝对路径如下,但没有成功:
$upload_dir = "/var/www/html/files/"
上传失败并出现以下错误:
Message: fopen(var/www/html/folder/uploads/files/filename.pdf): failed to open stream: No such file or directory
FPDF error: Unable to create output file:(/var/www/html/folder/uploads/files/filename.pdf)
知道为什么服务器不允许upload.php从“/var/www/html/folder”写入“/var/www/html/folder/uploads/”目录。
在任何日志文件中都找不到相关消息。
================================================ ===============
PHP 无法在 /var/www/html/folder/uploads/files/ 中 mkdir。
创建目录的一段代码是:
$uploadPath = "folder/uploads/files/";
$dir = $_SERVER['DOCUMENT_ROOT'] . $uploadPath;
if (!is_dir($dir)) @mkdir($dir, 0777);
return $uploadPath;
知道为什么上面的 mkdir 代码不能这样做吗?
谢谢。
【问题讨论】:
-
可能是这样,但您正在尝试写入/打开不同的文件夹,即/var/www/html/folder/uploads/ --- var/www/html/folder/uploads/files/
-
您好杰夫,谢谢您的回复。它是一个子目录,并且也已授予 777 权限。我只是不明白为什么它不能在 /var/www/html/folder/uploads/ 中创建文件。
标签: php