![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 2.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
Witam, na swojej stronie używam takiego formularza do uploadowania plików
Kod <?php $dir = 'uploads/'; $max_file_size = 30000000; $change_name = false; $name_length = 55; if(!file_exists($dir)) exit('Katalog '.$dir.' nie istnieje!'); if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['upload'])) { $tmp_name = $_FILES['userfile']['tmp_name']; $name = $_FILES['userfile']['name']; $type = $_FILES['userfile']['type']; $size = $_FILES['userfile']['size']; $error = $_FILES['userfile']['error']; $explode_name = explode('.',$name); $extension = @$explode_name[1]; if($change_name) { $name = $explode_name[0]; $new_name = substr(md5($name),0,$name_length).'.'.$extension; $path = $dir.$new_name; } else { $path = $dir.$name; } $dirname = dirname($_SERVER['SCRIPT_NAME']) == '/' || dirname($_SERVER['SCRIPT_NAME']) == '\\' ? null : dirname($_SERVER['SCRIPT_NAME']); $full_path = 'http://'.$_SERVER['HTTP_HOST'].$dirname.'/'.$path; if($error == UPLOAD_ERR_NO_FILE) { echo 'Wybierz plik.'; } elseif($error == UPLOAD_ERR_PARTIAL) { echo 'Błąd! Plik został tylko częściowo załadowany.'; } elseif($error == UPLOAD_ERR_NO_TMP_DIR) { echo 'Błąd! Brak folderu tymczasowego.'; } elseif($error == UPLOAD_ERR_INI_SIZE) { echo 'Błąd! Plik jest za duży dla serwera.'; } elseif($size > $max_file_size) { echo 'Za duży plik.'; } else { if(is_uploaded_file($tmp_name)) { if(move_uploaded_file($tmp_name,$path)) { echo 'Plik został wysłany. <br /><a href="'.$full_path.'">'.$full_path.'</a><br><br>'; } else { echo 'Nie udało się wysłać pliku. Spróbuj później.'; } } else { echo 'Co ty próbujesz.'; } } } ?> <center> <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post" enctype="multipart/form-data"> <input type="file" name="userfile" /> <input type="submit" name="upload" value="Wy¶lij" /> </form> </center> Oczywiście działa ale problem jest taki gdy chce wgrać plik na serwer o tej samej nazwie to za każdym razem plik zostaje zastąpiony nowym. Czy ktoś może mi podpowiedzieć co zmienić w kodzie by plik o tej samej nazwie był zamieniany na nazwę np z : obraz.jpg na obraz(1).jpg i dalej obraz(2).jpg Dziękuję za jakąkolwiek pomoc! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 324 Pomógł: 110 Dołączył: 18.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Za pomocą funkcji file_exist() przed przeniesieniem sprawdź czy taki plik już istnieje w danym katalogu
![]() ![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 2.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
dzięki za odp. tylko gdzie i co wstawić w kod, za bardzo nie wiem od czego zacząć?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 324 Pomógł: 110 Dołączył: 18.09.2012 Ostrzeżenie: (0%) ![]() ![]() |
Skoro już zmieniasz nazwę pliku to rób to tak by się nie mogła powtórzyć
![]()
Wracając do Twojego pytania musisz to sprawdzić przed przeniesieniem pliku czyli tutaj ![]()
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 2.06.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję bardzo, działa!
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 25.06.2025 - 18:59 |