簡體   English   中英

將同一文件上傳到多個文件夾

[英]Upload the same file into multiple folders

我有一個上傳表單,當我選擇文件時,我需要將它上傳到多個文件夾。任何想法如何做到這一點? 我試過像下面這樣的循環:

foreach($_POST['check'] as $check){     
    move_uploaded_file($_FILES['doc']['tmp_name'], $target_path);
    chmod($target_path,0777);    
}

但它只上傳一次。有什么想法嗎?

上傳后,使用copy()將文件從目標路徑復制到其他路徑。

foreach($_POST['check'] as $check){     
    move_uploaded_file($_FILES['doc']['tmp_name'], $target_path);
    chmod($target_path,0777);    
    // and now...
    copy($target_path, $target_path_2);
    copy($target_path, $target_path_3);
    // etc...
}

順便說一下,為權限設置0777通常是不必要的,也是一個壞主意。 您希望任何人上傳文件並讓任何用戶執行它們嗎? 這是開始讓任何人完全控制你的機器的方法。

此外,您確定需要多個位置的文件嗎? 為什么沒有一個公共存儲文件夾並創建它的符號鏈接? 但這當然取決於你的設置。

上傳一次,然后只需復制()它。

$i = 0; 
foreach($_POST['check'] as $check){ 
   $basePath = "/var/www/html/more/phpexm/"; 
   $target_path = $basePath . $check; 

   if (!file_exists($target_path)){ 
       mkdir($target_path, 0777);
   }

   if ($i == 0){
       $sFileNameTmp = $_FILES['doc']['tmp_name'];
       $sFileName = $_FILES['doc']['name'];
       move_uploaded_file($sFileNameTmp, $target_path . '/' . $sFileName);
       $sFirstFileUploaded = $target_path; 
   }
   else{ 
       copy ($sFirstFileUploaded . '/' . $sFileName,  $target_path  . '/' . $sFileName); 
    }
    $i++;   
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM