PHP和将图片移动到新文件夹

4
我在我的templates文件夹中有一张图片,该图片是使用php和一个背景模板.jpg(存储在同一文件夹中)以及从表单提交的一些文本制作的。它保存为一个jpg文件。我想将php构建的图像复制到一个名为uploads的文件夹中,然后将其重命名为image451.jpg或任何id号码。我认为我应该使用copy()rename() php函数,但我无法让它们工作。我该怎么做?

“无法使它们正常工作”这个描述比较模糊。您能否发布您正在使用的代码,并告诉我们您遇到的具体错误或意外行为? - George Cummins
当你说“我无法让它们[copy()rename()]工作”,你是什么意思?它们为什么不能工作? - Sampson
2个回答

3

您需要确保您的Web服务器对您想要存储文件的uploads目录具有写访问权限。然后,您可以执行以下操作:

if (!rename("oldfilename.jpg", "/path/to/uploads/image451.jpg"))
{
  echo "oops, something went wrong moving your file.";
}

我们不知道您使用的服务器平台,所以如果您在问题中添加了这些信息,我们才能具体说明如何检查目录写入权限。

@webmachine,@Oscar M的答案更加完整。请使用他的! - Michael Berkowski

2

在尝试移动新文件到目标位置之前,您应该测试目标位置是否可写。

$dest_dir = "/path/to/uploads/";
$src_file = "path/to/orig/file.jpg";
if (is_writeable($dest_dir)) {
    $dest_file = $dest_dir . DIRECTORY_SEPARATOR . basename($src);
    if (false == rename($src, $dest_file)) {
        trigger_error('Could not move file', E_USER_ERROR);
    }
}
else {
    trigger_error('Destination dir is not writeable', E_USER_WARNING);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接