2015-10-07 72 views
2

,使文件上傳區分大小寫的代碼,所以我有一個以上的要上傳的圖片,每一個是在我的MySQL表的新行:如何通過名稱

我使用的名稱爲文件輸入驗證碼= 「個人資料」

if (isset($_FILES['profile']) === true) { 
if (empty($_FILES['profile']['name']) === true) { 
    echo 'Please choose a file!'; 
}else { 
    $allowed= array('jpg', 'jpeg', 'png')  
    $file_name = $_FILES['profile']['name']; 
    $file_exts = explode('.', $file_name); 
    $file_extn = strtolower(end($file_exts)); 
    $file_temp = $_FILES['profile']['tmp_name']; 
    if (in_array($file_extn, $allowed) === true) { 
     change_image($session_user_id, 1, $file_temp, $file_extn); 
     header('Location: galery.php'); 
     exit(); 
    }else { 
     echo 'Incorrect file type . allowed files are : '; 
     echo implode(", ", $allowed); 

(change_image)功能使得這個MySQL查詢

$sql = "UPDATE `art_$id` SET `path` = \"" . $file_path . "\" WHERE `row` = " . (int)$row; 

但我要重複的profil1這個代碼,profil2 ...並相應地改變行(例如:profil4將改變第4行),而不必爲每個文件='名稱'重複此代碼。

我該怎麼辦呢?

+0

你想通過這些腳本多次上傳? –

+0

在您的html中使用輸入名稱類似於:name =「files []」。這意味着這是一個多文件上傳。然後你可以在你的php腳本中通過你的$ _FILES ['files']進行foreach,並且對每個文件執行這個工作 –

+0

你可以添加代碼中的'change_image'函數 – Mitul

回答

0

不管你的表格有「多少個字段作爲文件和它們被命名的?」 。下面的代碼上傳到一個..Check它

$rowid=1; 
    foreach($_FILES as $key=>$image_uploaded) 
    { 
    if (isset($image_uploaded[$key]) === true) { 
    if (empty($image_uploaded[$key]['name']) === true) { 
     echo 'Please choose a file!'; 
    }else { 
     $allowed= array('jpg', 'jpeg', 'png')  
     $file_name = $image_uploaded[$key]['name']; 
     $file_exts = explode('.', $file_name); 
     $file_extn = strtolower(end($file_exts)); 
     $file_temp = $image_uploaded[$key]['tmp_name']; 
     if (in_array($file_extn, $allowed) === true) { 
      change_image($session_user_id, $rowid++, $file_temp, $file_extn); 
      //change as you need 
      header('Location: galery.php'); 
      exit(); 
     }else { 
      echo 'Incorrect file type . allowed files are : '; 
      echo implode(", ", $allowed); 
    } 
0

謝謝您的回答一個,因爲我有一個特定於每個表單提交按鈕,不慣於在一次我用這個代碼來驗證一切形式的:

for ($row = 1; $row <= 9; $row++) { 
if (isset($_FILES["profile" . $row]) === true) { 
if (empty($_FILES["profile" . $row]['name']) === true) { 
    echo 'Please choose a file!'; 
}else { 
    $allowed= array('jpg', 'jpeg', 'png'); 

    $file_name = $_FILES["profile" . $row]['name']; 
    $file_exts = explode('.', $file_name); 
    $file_extn = strtolower(end($file_exts)); 
    $file_temp = $_FILES["profile" . $row]['tmp_name']; 

    if (in_array($file_extn, $allowed) === true) { 
     change_image($session_user_id, $row, $file_temp, $file_extn); 
     //header('Location: galery.php'); 
     //exit(); 
    }else { 
     echo 'Incorrect file type . allowed files are : '; 
     echo implode(", ", $allowed); 

      } 



} 

} 
} 

而對於文件輸入我使用名稱= 「配置文件1」,名字= 「PROFILE2」,...,名字= 「profile9」(對於這種情況下)。

0

下面是將在圖像文件名末尾添加1,2,3的代碼 波紋管功能將檢查文件是否存在於目錄中並返回新文件名現在您可以使用change_image函數之前的功能呼叫並獲取新文件名並在change_image中傳遞新名稱以進行保存。

function getFileName($fileName, $file_extn){ 
    $fileNameWithoutExt = pathinfo($fileName, PATHINFO_FILENAME); 
    $i = 1; 
    while(!file_exists('image/art/' . $fileName)){ 
      $fileName = $fileNameWithoutExt . $i . "." . $file_extn; 
      $i++; 
    } 
    return $fileName; 
}