PHP:如何将上传的临时文件复制到多个地方?

2022-08-30 19:46:43

我怎样才能复制两次相同的文件?我正在尝试做这样的事情:

                copy($file['tmp_name'], $folder."1.jpg");
            copy($file['tmp_name'], $folder."2.jpg");
            copy($file['tmp_name'], $folder."3.jpg");

临时文件在被服务器销毁之前有多少时间?

我也尝试使用move_uploaded_file,但我无法使其工作。我想从上传的文件生成2个拇指。

一些帮助?

谢谢


答案 1

move_uploaded_file将移动文件,而不是复制它 - 这意味着它只能工作一次。

如果您使用的是copy,则对可以复制的次数没有任何限制:上传创建的临时文件只会在执行脚本结束时销毁(当然,除非您之前移动/删除它)


不过,也许解决方案是先使用,然后使用?
有点像这样,我想:move_uploaded_filecopy

if (move_uploaded_file($file['tmp_name'], $folder . '1.jpg')) {
    copy($folder . '1.jpg', $folder . '2.jpg');
    copy($folder . '1.jpg', $folder . '3.jpg');
}

这将允许您获得由...move_uploaded_file


如果这不起作用,请确保:

  • $folder包含您想要的内容 - 包括最终版本/
  • 这也包含你想要的东西(我猜这是$_FILES的某种副本 - 确保$_FILES$file的副本正确完成)$file['tmp_name']

答案 2

为什么不行?您是否尝试使用它两次?你不能这样做,它会移动它,所以第二次会失败。move_uploaded_file()

我只使用一次,然后从您刚刚将其移动到的位置制作第二个副本:move_uploaded_file()

move_uploaded_file($uploaded, $destination);
copy($destination, $destination2);

推荐