2013-07-05 43 views
1
<?php 

function sprawdz_bledy() 
{ 
    if ($_FILES['fotki']['error'] > 0) 
    { 
    echo 'problem: '; 
    switch ($_FILES['fotki']['error']) 
    { 
     // jest większy niż domyślny maksymalny rozmiar, 
     // podany w pliku konfiguracyjnym 
     case 1: {echo 'Rozmiar pliku jest zbyt duży.'; break;} 

     // jest większy niż wartość pola formularza 
     // MAX_FILE_SIZE 
     case 2: {echo 'Rozmiar pliku jest zbyt duży.'; break;} 

     // plik nie został wysłany w całości 
     case 3: {echo 'Plik wysłany tylko częściowo.'; break;} 

     // plik nie został wysłany 
     case 4: {echo 'Nie wysłano żadnego pliku.'; break;} 

     // pozostałe błędy 
     default: {echo 'Wystąpił błąd podczas wysyłania.'; 
     break;} 
    } 
    return false; 
    } 
    return true; 
} 


function sprawdz_typ() 
{ 
    if ($_FILES['fotki']['type']!= 'image/jpeg') 
    { 
     echo 'nie właściwy format pliku, proszę wybrać plik w formacie JPG'; 
     return false; 
    } 
    return true; 
} 

function zapisz_plik() 
{ 
    global $nazwa_pliku;  

     $filess = glob("./../wnetrza_img/wnetrze_*.jpg"); 
     if (is_array($filess) && count($filess) > 0) { 
    foreach ($filess as $filename) { 
     $files[] = $filename; 
    } 
} else { 
    $files[] = './../wnetrza_img/wnetrze_0.jpg'; 
} 

    if (!empty($files)) { 

    $ostatni = $files[count($files)-1]; 
    $pokaz_ostatni = explode("wnetrze_", $ostatni); 
    $ostatni_czysty = explode(".jpg", $pokaz_ostatni[1]); 
    $dodawanie = $ostatni_czysty[0] +1; 
    $nazwa_pliku = "wnetrze_$dodawanie.jpg"; 
    $lokalizacja = "./../wnetrza_img/$nazwa_pliku"; 
    } 
    else $lokalizacja = "./../wnetrza_img/wnetrze_0.jpg"; 


    if(is_uploaded_file($_FILES['fotki']['tmp_name'])) 
    { 
    if(!move_uploaded_file($_FILES['fotki']['tmp_name'], $lokalizacja)) 
    { 
     echo 'problem: Nie udało się skopiować pliku do katalogu.'; 
     return false; 
    } 
    } 
    else 
    { 
    echo 'problem: Możliwy atak podczas przesyłania pliku.'; 
    echo 'Plik nie został zapisany.'; 
    return false; 
    } 
    return true; 
} 

/*----------------START_WYSYLANIE_ZDJEC----------------*/ 

if (isset($_POST['wyslij'])) { 
    if (!empty($_FILES['fotki']['name'])) { 
     foreach($_FILES['fotki']['tmp_name'] as $key => $tmp_name) { 
      if (sprawdz_bledy('$fotki') && sprawdz_typ('$fotki')) { 
       zapisz_plik('$fotki'); 
      } 
     } 
    } 
} 

/*----------------KONIEC_WYSYLANIE_ZDJECI----------------*/ 

?> 

這是我的代碼,我試圖將其上傳於serwer幾個文件是哪一個,但環不想工作,我試過add [$key]$FILES['fotki']['tmp_name']之後,但它並沒有幫助太。PHP多文件上傳圖形檢查

你能告訴我問題在哪裏嗎?編輯/////////////////// ////

<?php 

function sprawdz_bledy($key) 
{ 
    if ($_FILES['fotki']['error'][$key] > 0) 
    { 
    echo 'problem: '; 
    switch ($_FILES['fotki']['error']) 
    { 
     // jest większy niż domyślny maksymalny rozmiar, 
     // podany w pliku konfiguracyjnym 
     case 1: {echo 'Rozmiar pliku jest zbyt duży.'; break;} 

     // jest większy niż wartość pola formularza 
     // MAX_FILE_SIZE 
     case 2: {echo 'Rozmiar pliku jest zbyt duży.'; break;} 

     // plik nie został wysłany w całości 
     case 3: {echo 'Plik wysłany tylko częściowo.'; break;} 

     // plik nie został wysłany 
     case 4: {echo 'Nie wysłano żadnego pliku.'; break;} 

     // pozostałe błędy 
     default: {echo 'Wystąpił błąd podczas wysyłania.'; 
     break;} 
    } 
    return false; 
    } 
    return true; 
} 


function sprawdz_typ($key) 
{ 
    if ($_FILES['fotki']['type'][$key]!= 'image/jpeg') 
    { 
     echo 'nie właściwy format pliku, proszę wybrać plik w formacie JPG'; 
     return false; 
    } 
    return true; 
} 

function zapisz_plik($key) 
{ 
    global $nazwa_pliku;  

     $filess = glob("./../wnetrza_img/wnetrze_*.jpg"); 
     if (is_array($filess) && count($filess) > 0) { 
    foreach ($filess as $filename) { 
     $files[] = $filename; 
    } 
} else { 
    $files[] = './../wnetrza_img/wnetrze_0.jpg'; 
} 

    if (!empty($files)) { 

    $ostatni = $files[count($files)-1]; 
    $pokaz_ostatni = explode("wnetrze_", $ostatni); 
    $ostatni_czysty = explode(".jpg", $pokaz_ostatni[1]); 
    $dodawanie = $ostatni_czysty[0] +1; 
    $nazwa_pliku = "wnetrze_$dodawanie.jpg"; 
    $lokalizacja = "./../wnetrza_img/$nazwa_pliku"; 
    } 
    else $lokalizacja = "./../wnetrza_img/wnetrze_0.jpg"; 


    if(is_uploaded_file($_FILES['fotki']['tmp_name'][$key])) 
    { 
    if(!move_uploaded_file($_FILES['fotki']['tmp_name'][$key], $lokalizacja)) 
    { 
     echo 'problem: Nie udało się skopiować pliku do katalogu.'; 
     return false; 
    } 
    } 
    else 
    { 
    echo 'problem: Możliwy atak podczas przesyłania pliku.'; 
    echo 'Plik nie został zapisany.'; 
    return false; 
    } 
    return true; 
} 

/*----------------START_WYSYLANIE_ZDJEC----------------*/ 

if (isset($_POST['wyslij'])) { 
    if (!empty($_FILES['fotki']['name'])) { 
     foreach($_FILES['fotki']['tmp_name'] as $key => $tmp_name) { 
      if (sprawdz_bledy($key) && sprawdz_typ($key)) { 
       zapisz_plik($key); 
      } 
     } 
    } 
} 

/*----------------KONIEC_WYSYLANIE_ZDJECI----------------*/ 

?> 

你的信息幫我,現在我在每一個函數添加參數,現在,它的工作原理,但只有10個文件,我不知道爲什麼:/

回答

1

你的代碼是完全破

if (sprawdz_bledy('$fotki') && sprawdz_typ('$fotki')) { 
        ^-- ^-- 

單引號字符串(')做解釋變量,所以你傳遞一個字面值$,f,o等...到你的函數。您可以在整個代碼中的多處執行此操作。

然後函數本身:

function sprawdz_bledy() 

不接受任何參數,因此即使$fotki正確過去了,你扔掉的價值。

在這一功能,你硬編碼的所有$ _FILES參數的,所以你的外部foreach()循環是毫無意義的:

if ($_FILES['fotki']['error'] > 0) 

鑑於你在$ _FILES做一個foreach循環,你大概想要更多的東西一樣:

function sprawdz_bledy($name, $id) { 
    if ($_FILEs[$name]['error'][$id] > 0) { 
+0

哦,我的錯誤:) 所以也許我應該做些什麼? LOOP: 如果(sprawdz_bledy()&& sprawdz_typ()){ \t \t \t \t zapisz_plik(); 但什麼循環? 或者也許你有更好的方法來啓動3功能的所有文件將上傳? – SkuterPL

+0

好的我修復它,謝謝你的幫助 – SkuterPL