![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 10.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
stworzyłem sobie formularz za pośrednictwem którego można wrzucić jeden, dwa lub trzy pliki na serwer oto fragment: <input type="hidden" name="MAX_FILE_SIZE" value="2048000" /> <input name="plik1" type="file" /><br> <input name="plik2" type="file" /><br> <input name="plik3" type="file" /><br> kod główny sprawdzający czy są załączniki i jeśli tak to uruchamia funkcje ZALACZNIKI_SPR() która zwraca tylko nazwę pliku: CODE if ($_FILES['plik1']['tmp_name'] != "") { $plik1=zalaczniki_spr('plik1'); } if ($_FILES['plik2']['tmp_name'] != "") { $plik2=zalaczniki_spr('plik2'); } if ($_FILES['plik3']['tmp_name'] != "") { $plik3=zalaczniki_spr('plik3'); } print("Dane dodane z plikami: $plik1, $plik2, $plik3"); oto kod tej funkcji: CODE function zalaczniki_spr($pliczek) { $plik_tmp = $_FILES[$pliczek]['tmp_name']; $plik_nazwa = $_FILES[$pliczek]['name']; if(is_uploaded_file($plik_tmp)) { global $fo_nazwa; // tutaj dodaje do nazwy pliku wartosc innego pola formularza - cel - unikatowa nazwa pliku $plik_nazwa = $fo_nazwa.'_'.$plik_nazwa; // tutaj nudny kod poprawiajacy nazwe pliku $plik_nazwa = strtolower($plik_nazwa); $plik_nazwa = str_replace("ż","z",$plik_nazwa); $plik_nazwa = str_replace(chr(177),"a",$plik_nazwa); $plik_nazwa = str_replace(" ","_",$plik_nazwa); $plik_nazwa = str_replace(chr(182),"s",$plik_nazwa); $plik_nazwa = str_replace("ć","c",$plik_nazwa); $plik_nazwa = str_replace(chr(188),"z",$plik_nazwa); $plik_nazwa = str_replace("ó","o",$plik_nazwa); $plik_nazwa = str_replace("ł","l",$plik_nazwa); $plik_nazwa = str_replace("ń","n",$plik_nazwa); $sciezka = $_SERVER['DOCUMENT_ROOT']."upload/"; // tutaj kod który znajduje rozszerzenie pliku $dlugosc = strlen($plik_nazwa); $j = 1; while ($nzw_pliku==""): $find_dot = substr($plik_nazwa, -$j, 1); if($find_dot==".") { $nzw_pliku = substr($plik_nazwa, 0, $dlugosc-$j); $rozszerzenie = substr($plik_nazwa, -$j+1, $j); } else { $j++; } endwhile; // sprawdzenie czy rozszerzenie jest OK if($rozszerzenie != "exe" && $rozszerzenie != "com" && $rozszerzenie != "reg" && $rozszerzenie != "bat" && $rozszerzenie != "scr" && $rozszerzenie != "pif" && $rozszerzenie != "cmd" && $rozszerzenie != "vbs") { $dosprawdzenia = $sciezka; $dosprawdzenia .= $plik_nazwa; $i = 0; while (file_exists($dosprawdzenia)): $i++; $nzw_pliku .=$i; $dosprawdzenia = $sciezka; $dosprawdzenia .= $nzw_pliku; $dosprawdzenia .= "."; $dosprawdzenia .= $rozszerzenie; $plik_nazwa = $nzw_pliku; $plik_nazwa .= "."; $plik_nazwa .= $rozszerzenie; endwhile; // i końcóweczka, gdy wszystko co było wyżej jest OK move_uploaded_file($plik_tmp, "upload/$plik_nazwa"); return $plik_nazwa; } else { print("Niedozwolone rozszerzenie pliku."); } } } no i co za problem mam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) od razu mówie że ten kod działa wzorowo gdy dodaje - 1 plik o wadze np. 200kb - lub gdy dodaje 3 małe pliki o wadze 2kb (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ale gdy dodaje 2/3 pliki o wadze okolo 200kb każdy, wtedy po kliknieciu na submit - czekam czekam.. i pojawia sie spowrotem formularz, a pliki nie sa wgrane co jest zle?? pozdrawiam i bardzo prosze o pomoc! PS. wartość MAX_FILE_SIZE dotyczy wszystkich plików? czy każdego z osobna? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.09.2025 - 11:07 |