如何将同一文件复制两次?我正在尝试做这样的事情:
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个拇指。
一些帮助?
谢谢,
答案 0 :(得分:31)
move_uploaded_file
会移动文件,而不是复制它 - 这意味着它只能运行一次。
如果您使用的是copy
,则根据您可以复制的次数不应有任何限制:上传创建的临时文件只会在您执行结束时销毁。脚本(除非您之前移动/删除它)
不过,也许一个解决方案是首先使用move_uploaded_file
,然后使用copy
?
有点像这样,我想:
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
包含您想要的内容 - 包括最终的/
$file['tmp_name']
还包含您想要的内容(我猜这是$_FILES
的某种副本 - 请确保$_FILES
的副本为{{1}正确完成) 答案 1 :(得分:4)
为什么move_uploaded_file()
不起作用?你想尝试两次吗?你不能这样做,它移动它,所以第二次失败。
我只需使用move_uploaded_file()
一次,然后从您刚刚将其移动到的位置制作第二个副本:
move_uploaded_file($uploaded, $destination);
copy($destination, $destination2);
答案 2 :(得分:2)
我没有直接回复您的问题,但是这个解决方法怎么样?
copy($file['tmp_name'], $folder."1.jpg");
copy($folder."1.jpg" , $folder."2.jpg");
copy($folder."1.jpg" , $folder."3.jpg");
答案 3 :(得分:1)
谢谢你,你给我一盏灯。
我做了这样的事情:
$objUpload = new Upload();
$filename = $objUpload->uploadFile($newFile,$folder);
// returns a string
$objUpload->makeThumb($filename,$folder,"thumbs",139);
// makes a 139px thumbnail from the original file uploaded on the first step
$objUpload->makeThumb($filename,$folder,"mini",75);
// makes another thumb from the same file
使用move_uploaded_file并复制我们只能制作一个拇指。 :)