2013-11-26 90 views
1

我需要爲選定的每個用戶多次上傳相同的文件。多次上傳同一文件

例如,如果您選擇了3個用戶,則需要將上傳的文件移至用戶文件夾。

我的代碼:

$subDir = $_POST['curr_user']; 
    $usuarios = explode(',', $subDir); 

    if (count($usuarios) > 1) { 
     foreach ($usuarios as $usuario) { 
       $usFolder = file_exists ($upload_dir['basedir'].'/file_uploads/'.$usuario); 

       if (!$usFolder) { 
        mkdir ($upload_dir['basedir'].'/file_uploads/'. $usuario, 0777 , true); 
        chmod($upload_dir['basedir'].'/file_uploads/'. $usuario,0777); 
       } 


       $target_path = $upload_dir['basedir'].'/file_uploads/'; 

       $target_path = $target_path . basename($_FILES['uploadedfile']['name']); 


       if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { 

        $wpdb->insert($wpdb->prefix . "userfile_data", array('id'=> '','user_id'=>$usuario,'category'=>$_POST['curr_cat'],'filename'=>basename($_FILES['uploadedfile']['name']))); 


       } 

     } 
    } 

有人能幫助我嗎?

+2

不要移動文件,然後。根據需要移動它從原始位置移除它,所以它不會出現在您處理的下一個用戶的位置。 ** COPY **代替,然後在所有用戶處理完畢後手動將其刪除。 –

回答

2

問題是你正試圖多次「移動」它。

不幸的是沒有「copy_uploaded_file」,這樣反而可以:

  • 將上傳文件到臨時目錄第一
  • 然後在循環將該文件複製到每個用戶的目標目錄。
  • 一旦完成,清理原始文件。