无法使用 PHP 重命名文件

Posted

技术标签:

【中文标题】无法使用 PHP 重命名文件【英文标题】:Unable to rename file using PHP 【发布时间】:2021-04-07 17:54:25 【问题描述】:

你写了简单的代码来重命名我在服务器上的文件,但总是出现如下错误

rename(/public_html/mystore/images,/public_html/mystore/images/test.jpeg): No such file or directory in /home/innovero/public_html/mystore/move.php on line 18

下面是重命名的PHP代码,

<?php
   

/* Store the path of source file */

$filePath = '/public_html/mystore/test.jpeg';
      
/* Store the path of destination file */

$destinationFilePath = '/public_html/mystore/images/test.jpeg';
    

/* Copy File from images to copyImages folder */
    if( !rename($filePath, $destinationFilePath) )   

    echo "File can't be moved!";  

  

else   

    echo "File has been moved!";  

 

  

?>

我的代码有什么问题,我的 move.php 位于 mystore 文件夹中,我想将文件从 mystore 移动到作为 mystore 子文件夹的 images 文件夹。请帮忙

【问题讨论】:

前导斜杠表示文件存储在文件系统的根目录,与当前脚本无关 你能建议什么是正确的路径写入方式。 更新了错误,将 / 替换为 ./ 作为重命名(./public_html/mystore/images,./public_html/mystore/images/test.jpeg):/home/innovero 中没有这样的文件或目录/public_html/mystore/move.php 第 18 行 然后使用完整路径:/home/innovero/public_html/... 您到底想在此处复制/移动什么文件?来自$filePath = '/public_html/mystore/images';public_html/mystore/images 是一个文件吗? 【参考方案1】:

似乎您正在尝试重命名目录而不是文件

试试这个代码:

<?php
  $filePath = '/public_html/mystore/images/test.jpeg';    
  $destinationFilePath = '/public_html/mystore/images/newtest.jpeg';

  if(rename($filePath, $destinationFilePath) )   
      echo "File has been moved!";  
  else 
      echo "Unable to move file";  


?>

【讨论】:

你会仔细检查文件吗? 需要这样的完整地址 /home/innovero/public_html/mystore/test.jpeg【参考方案2】:

终于开始使用下面的代码了

<?php
if(file_exists('/home/innovero/public_html/mystore/test.jpg'))
   
    rename('/home/innovero/public_html/mystore/test.jpg','/home/innovero/public_html/mystore/images/test.jpg');
else
    echo "No File";

【讨论】:

【参考方案3】:

您将目录复制到文件 将 /public_html/mystore/images 复制到 /public_html/mystore/images/test.jpeg

试试

rename(/public_html/mystore/images/test-old.jpg, /public_html/mystore/images/test-new.jpeg)

【讨论】:

以上是关于无法使用 PHP 重命名文件的主要内容,如果未能解决你的问题,请参考以下文章

apt无法重命名文件

无法使用 ngx-awesome-uploader 重命名文件

为啥linux无法重命名文件

文件夹重命名的问题

文件路径乱码,无法打开、重命名、移动、删除、粉碎

使用 Java 重命名文件后,一些文件在 linux 系统上或通过 Java 无法访问