PHP“重命名”找不到文件,但命令行“ less”可以找到

问题描述 投票:0回答:1

从服务器运行时,我从PHP中收到以下错误

PHP警告:重命名(var / www / vhosts / example.com / httpdocs / dir1 / papers / 1632813138.pdf,var / www / vhosts / example.com / httpdocs / dir1 / papers / 00000006.pdf):否这样/var/www/vhosts/example.com/httpdocs/dir1/processes/generate_abstract_pages.php中第98行的文件或目录

如果我再运行

less var/www/vhosts/example.com/httpdocs/dir1/papers/1632813138.pdf在命令行上,它将找到文件。我正在复制/粘贴地址,因此不会意外更改它。

我也尝试过给重命名一个../papers/1632813138.pdf的相对路径,但是给出了相同的错误。

相对路径在浏览器中运行时有效,https://example.com/dir1/processes/generate_abstract_pages.php

<?php

$abstract["pdf_url"] = "1632813138.pdf";
$abstractId = 7;

$pdfFilename = str_pad($abstractId, 8, "0", STR_PAD_LEFT).".pdf";

$fileRenameSuccess = rename("../papers/$abstract[pdf_url]","../papers/$pdfFilename");

echo ($fileRenameSuccess ? "y":"n");

正在运行PHP 7.1.23运行‪CentOSLinux 7.6.1810(核心)‬

php file-rename
1个回答
0
投票

您可以使用getcwd()获取脚本的当前工作目录,以确保该脚本正在从您期望的相对路径起作用的位置运行。

您需要以“ /”开头的绝对路径才能工作。

© www.soinside.com 2019 - 2024. All rights reserved.