2016-01-15 27 views
0

我正在使用此代碼進行多個圖像上傳。多個圖像上傳與序列號

我希望如果我一次上傳多個圖像並在列中發送1,2,3,4,5,並且如果我第二次上傳6,7,8,9等等。

我不希望序列順序自動增加,因爲我需要根據需要更改它。

<?php 
if(isset($_FILES['files'])) 
{ 
$errors= array();$s=$i++; 
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name) 
    { 
     $file_name = $key.$_FILES['files']['name'][$key]; 
     $file_size =$_FILES['files']['size'][$key]; 
     $file_tmp =$_FILES['files']['tmp_name'][$key]; 
     $file_type=$_FILES['files']['type'][$key]; 
     if($file_size > 2097152) 
     { 
      $errors[]='File size must be less than 2 MB'; 
     } 
     $desired_dir="user_data"; 
     if(empty($errors)==true) 
     { 
      if(is_dir($desired_dir)==false) 
      { 
       // Create directory if it does not exist 
       mkdir("$desired_dir", 0700);   
      } 
      if(is_dir("$desired_dir/".$file_name)==false) 
      { 
       move_uploaded_file($file_tmp,"user_data/".$file_name); 
      } 
      else 
      { 
       //rename the file if another one exist 
       $new_dir="user_data/".$file_name.time(); 
       rename($file_tmp,$new_dir) ;    
      } 
      //mysql_query($query);   
     } 
     else 
     { 
       print_r($errors); 
     } 
     // echo $file_name = $file_name.","; 
     $query="INSERT into upload_data (FILE_NAME,FILE_SIZE,FILE_TYPE,serial) VALUES('$file_name','$file_size','$file_type','$s'); "; 
     mysql_query($query); 
    } 
    if(empty($error)) 
    { 
     echo "Success"; 
    }  
} 
?> 
+0

您的意思是在用戶持續上傳圖片期間,或者,對於上傳圖片的所有用戶EVER – RiggsFolly

+0

還有一種標準做法,表格名稱和列名應該是小寫。 Rememeber * nix是區分大小寫的,如果你開始混合使用case,那麼當你忘記哪些列名是UPPER CASE,哪些是小寫字母時,你很可能會得到錯誤 – RiggsFolly

+0

RiggsFolly它對於一個用戶而言只意味着只有admin正在上傳圖像...並且在上傳他將按照他的需要重新排列圖像的順序。 –

回答

0

您至少有3個選項:

  • 保存使用JavaScript序列。
  • 使用$ _SESSION保存序列。
  • 使用您的數據庫保存序列號。

例如我們使用了$ _SESSION容器:

isset($_SESSION['img_count']) ? : $_SESSION['img_count']=0; //set the image counter for each session 
move_uploaded_file($file_tmp,"user_data/".$file_name) ? $_SESSION['img_count'] ++ : ''; //update the counter ONLY when the file has been copied to your hard drive. 
$query="INSERT into upload_data (FILE_NAME,FILE_SIZE,FILE_TYPE,serial) VALUES('$file_name','$file_size','$file_type','$_SESSION[img_count]')"; // insert it on the database. 

當然你也可以採用同樣的原則,以一個javascript所以每個用戶的計算機處理的這些數字,然後你只需要它們包括在你正在使用的形式。