将保存的文件移动到PHP中的另一个目录


Move saved file to another directory in PHP

首先是我的代码:

 /* Make directory if not existing */
$directory = "appicons/$artistid/$appid/";
if (!is_dir ($directory)) 
{
     $mode = 0777;
     mkdir($directory, $mode, true);
}
 /* Resize Icon */
 include('appicons.php');
 if(file_exists(''. $artistid . '-' . $appid . '.png')){
    end(&$appicon);
    }else{
    $appicon = new SimpleImage();
    $appicon->load($icon);
    $appicon->resizeToWidth(128);
    $appicon->save(''. $artistid . '-' . $appid . '.png');
    }

$appicon将一个文件以$appid-$artistid.png的形式保存到我网站的根目录中。我希望将该文件移动到正确的目录(格式为/appicons/$appid/$artistid/.

我看过move_uploaded_file,但我不确定如何实现它,也不确定这是否是我应该使用的正确函数。我认为我应该编辑$appicon->save(''. $artistid . '-' . $appid . '.png');,但我不确定该怎么办…

我想你要找的是:

$appicon->save($directory . $artistid . '-' . $appid . '.png'); 

首先,您的$directory变量没有正确连接,您希望使用以下内容:

$directory = 'appicons/' . $artistid . '/' . $appid;

如果PNG文件只能保存到PHP脚本运行的路径,那么您需要先让它保存,然后再移动文件。如果是这种情况,那么PHP中的rename()函数将实现您想要的功能。

$filename = $artistid . '-' . $appid . '.png';
if(file_exists($filename)) {
  rename($filename, $directory . '/' . $filename);
}

这将把png文件移动到指定的目录(即appicons/artistid/appid文件夹)。