![]() |
![]() ![]() |
![]() |
![]()
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? |
|
|
--- |
![]()
Post
#2
|
Goście ![]() |
Chyba nie ale moge sie mylic.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 116 Pomógł: 119 Dołączył: 10.05.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
wg tego upload_max_filesize dotyczy tylko pojedynczego pliku (nie ma wzmianki o sumie całkowitej wielu plików) . Jednakże jeszcze jest jeden parametr w php.ini warty zaznaczenia. Jest to post_max_size. Sprawdź, czy czasem tej wartości nie przekroczyłeś!
Pozdrawiam. PS: Poza tym Cytat
to tylko i wyłącznie Twoja zmienna a nie żadna dyrektywa php.ini, więc jak jej użyjesz to Twoja sprawa. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 10.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
uzywam serwera darmowego lycos.co.uk
znalazlem w info ze jest post_max_size 512000 czyli 0,5mb.. wszystko jasne.. tylko teraz pytanko mam takie, czy da sie zrobic w jednym formularzu taki myk zeby to maxsize tyczyl sie tylko jednego pola input file bo teraz to ewidentnie wszystkie pliki co wrzucam są sumowane i sprawdzane z wartościa maxsize.. a co do tego mojego pola <input type="hidden" name="MAX_FILE_SIZE" value="2048000" /> to chyba faktycznie wzorowalem sie na jakims formularzu i myslalem ze to jest jakas funkcja restrykcji wielkosci pliku.. pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:18 |