Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Upload plików
micnor
post
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!
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 23:24