2010-03-11 51 views
13

如何复制两次相同的文件?我试图做这样的事情:PHP:如何将临时文件上传复制到多个位置?

   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个大拇指。

有帮助吗?

感谢,

回答

27

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拷贝到$file做得好)
+0

谢谢你,你给我光。 – ookla 2010-03-11 19:47:55

4

为什么不move_uploaded_file()工作?你想用两次吗?你不能那样做,它会移动它,所以第二次就会失败。

我只想用move_uploaded_file()一次,然后从该位置的第二个副本,你只需将它移到:

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

我没有回答你的问题直接但如何对这种解决方法吗?

copy($file['tmp_name'], $folder."1.jpg"); 
copy($folder."1.jpg" , $folder."2.jpg"); 
copy($folder."1.jpg" , $folder."3.jpg"); 
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_ulploaded_file和复制,我们只能让一个大拇指。 :)