2013-08-16 92 views
0

假設有2個不同名字的相同圖像。我想上傳這些圖片&把它們放在不同的文件夾中。假設,img1.jpg & a-img1.jpg是圖像。現在img1.jpg將繼續「文件/圖像/」位置& a-img1.jpg將繼續「文件/圖像/」位置。我已成功設置上傳圖片,但只會轉到一個目標文件夾。這是我的代碼,根據名稱上傳圖片在PHP

$upload_errors = 0; 
    $images= $_FILES['img']; 
    $img_id = get_new_image_id(); 
    $image_ok = true; 
    $queries = array(); 
    $allowed_exts = array('jpg', 'png', 'jpeg', 'gif'); 
    foreach ($images['tmp_name'] as $key => $val) { 
     $fileName = $images['name'][$key]; 
     $fileSize = $images['size'][$key]; 
     $fileSize = round($fileSize/1024); 
     $fileTemp = $images['tmp_name'][$key]; 
     $path_parts = pathinfo($fileName); 
     $fileExt = $path_parts['extension']; 
     $fileExt = strtolower($fileExt); 
     if($fileSize > 2*1024){ 
      $image_ok = false; 
     } 
     if(!in_array($fileExt, $allowed_exts)){ 
      $image_ok = false; 
     } 
     if($image_ok){ 
      $upload_link = "files/images/".$img_id.".".$fileExt; 
    $tupload_link = "files/a-images/".$img_id.".".$fileExt; 

     move_uploaded_file($fileTemp, $upload_link); 
     move_uploaded_file($fileTemp, $tupload_link); 
     $img_id++; 
     }else{ 
      $upload_errors++; 
     } 

有什麼辦法來識別,如「A-img1.jpg」的圖像文件?我非常需要這個幫助。 Tnx提前!

+0

請問這兩個圖像對形式相同的名稱'img'? 對這兩個圖像都有不同的名稱,然後您將能夠確定要在哪個文件夾中上傳哪個圖像。 –

+0

@DeadMan,號我必須使用一個單一的多個上傳按鈕。多個圖像將同時上傳,我的程序需要確定哪一個具有「a」或不是。 –

+0

檢查上傳文件的名稱以確定哪個位置適合它。 –

回答

1

既然你已經移動該文件從同一來源第二次移動將無法正常工作。也許你應該第二次複製文件。

0

您可以使用此功能,看是否字符串「A-」開始:

function startsWith($haystack, $needle){ 
    return strpos($haystack, $needle) === 0; 
} 

所以,你會做這樣的事情:

if(startsWith($img_id, "a-")){ 
    $upload_link = "files/a-images/".$img_id.".".$fileExt; 
}else{ 
    $upload_link = "files/images/".$img_id.".".$fileExt; 
} 

move_uploaded_file($fileTemp, $upload_link); 
+0

'$ haystack'&'$ needle'是什麼? –

+0

當您調用它們時,它們是該函數的參數。所以美元針是你在$乾草堆中尋找的。所以當你這樣做時:startsWith($ img_id,「a-」)它在haystack $ img_id中尋找針「a-」。 –

+0

我明白了。讓我檢查一下它是否有效,然後我讓你知道。 TNQ。 –