2010-03-11 52 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和複製,我們只能讓一個大拇指。 :)