Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sprawdzenie czy plik instnieje
Forum PHP.pl > Forum > PHP
Domon
Przychodzę do Was z kolejnym problemem. Mam taki formularz:

Kod
///////////
/////////////////

// Settings
$upload_maxsize = 2097152;
$upload_extensions = array(
    ".gif",
    ".GIF",
    ".jpg",
    ".JPG",
    ".jpeg",
    ".JPEG",
    ".png",
    ".PNG"
);
$upload_folder = BASEDIR."galeria/zdjecia/";

if (isset($_POST['zglos'])) {
        if ($_POST['tytul'] != "" && $_POST['opis'] != "") {

    $upload = $_FILES['upload'];
    
    if ($upload['name'] != "" && !empty($upload['name']) && is_uploaded_file($upload['tmp_name']) && $upload['size'] <= $upload_maxsize) {
    
        $upload_ext = strrchr($upload['name'],".");
        if (in_array($upload_ext, $upload_extensions)) {
            $upload_name = $upload['name'];
            move_uploaded_file($upload['tmp_name'], $upload_folder.$upload_name);
            chmod($upload_folder.$upload_name,0777);

        } else {
            $upload_error = $locale['fup124'];
        }
    } else {
        $upload_error = $locale['fup125'];
    }
    echo "<center><br>
".(!isset($upload_error) ? "" : $upload_error)."<br><br>

</center>\n";



    
    /////
$dodawanie = dbquery("insert into galeria_usera_zdjecia (id_zdjecia,autor,album,tytul,opis,upload) VALUES ('', '".$userdata['user_id']."', '".$_POST['album']."','".$_POST['tytul']."', '".$_POST['opis']."', '".$upload['name']."')");
echo '<center><b><span style="color: rgb(247, 80, 19);">Dodano zdjęcie!</span></b></center>';

} else {
echo '<center><b><span style="color: rgb(247, 80, 19);">Nie dodano zdjecia! Wypełnij formularz do końca!</span></b></center>';

}



} else {



echo '
<center>
<form action="" method="POST" enctype="multipart/form-data">

<table border="0" style="border-collapse: collapse">
    <tr>
        <td>Nazwa zdjecia:</td>
        <td><input type="text" class="textbox" value="" name="tytul" style="width:200"></td>
    </tr>
        <tr>
        <td>Opis zdjecia:</td>
        <td><input type="text" class="textbox" value="" name="opis" style="width:200"></td>
    </tr>
    <tr>
        <td>Upload:</td>
        <td>
        <input type=\'file\' name="upload" class=\'textbox\' style=\'width:250px;\'>
</td>
<tr>
<td>Album:</td><td>
    <select name="album" class="textbox">';
    $zapytanie = dbquery("SELECT * FROM galeria_usera_album WHERE autor = '".$userdata['user_id']."' ORDER BY id_albumu DESC LIMIT 0,6");
while($data = dbarray($zapytanie)){
echo"<option> ".$data['nazwa']." </option>";
}

echo'
</select>
</td>
    </tr>
</table>
<br>
<input type="submit" class="button" value="Zgło¶ pracę" name="zglos">
</form></center>
';
}

Jest to galeria usera, każdy user może dodać zdjęcie ale problem jest taki że jak user 1 doda zdjęcie o nazwie xyz.jpg i user 2 albo nawet ten sam doda kolejne zdjecie o takiej samej nazwie (choć zupełnie inne) to pierwsze zdjecie zostanie zastąpione tym nowym. I moje pytanie brzmi jak to poprawić chciałem użyć takiego kodu:
Kod
$pokaz="".BASEDIR."galeria/zdjecia/".$upload."";
if (file_exists($pokaz)) {
echo"zdjecie istnieje";
} else {
Dodanie pol do bazy i zdjecia do folderu
}
jednakże za każdym razem pokazuje mi się zdjęcie istnieje przy wysyłaniu forumularza. Choć takie zdjęcie nie istnieje. Mogę liczyć na Waszą pomoc? biggrin.gif
shark121
Może do nazwy dodawaj wygenerowany ciąg znaków, którego szansa na powtórzenie się jest niewielka?
Domon
No w sumie pomysł nie jest zły tylko że musiało by ten ciąg znaków (taki sam) wysyłać również do bazy. I pytanie jak to zrobić...
rzymek01
do nazwy nic nie dodawaj (tzn. trzymaj ją w SQL), ale pliki zapisuj tylko w postaci id zdjęcia takiego, jaki mają w SQL

PS. oczywiście zmienisz wtedy trochę kolejność, tj. najpierw dodasz do bazy, potem pobierz id tego zdjęcia funkcją `mysql_insert_id` i teraz dopiero przesun plik, a za $upload_name daj własnie id
Domon
Dzięki za radę smile.gif
<piwo>
rzymek01
Cytat(Domon @ 26.01.2009, 21:11:53 ) *
<piwo>

no tu nie ma beermoda niestety biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.