Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sprawdzenie czy plik instnieje
Domon
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.11.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
shark121
post
Post #2





Grupa: Zarejestrowani
Postów: 62
Pomógł: 5
Dołączył: 31.03.2008

Ostrzeżenie: (0%)
-----


Może do nazwy dodawaj wygenerowany ciąg znaków, którego szansa na powtórzenie się jest niewielka?
Go to the top of the page
+Quote Post
Domon
post
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.11.2008

Ostrzeżenie: (0%)
-----


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ć...
Go to the top of the page
+Quote Post
rzymek01
post
Post #4





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

Ostrzeżenie: (0%)
-----


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

Ten post edytował rzymek01 26.01.2009, 21:02:22


--------------------
:]
Go to the top of the page
+Quote Post
Domon
post
Post #5





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.11.2008

Ostrzeżenie: (0%)
-----


Dzięki za radę smile.gif
<piwo>
Go to the top of the page
+Quote Post
rzymek01
post
Post #6





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

Ostrzeżenie: (0%)
-----


Cytat(Domon @ 26.01.2009, 21:11:53 ) *
<piwo>

no tu nie ma beermoda niestety biggrin.gif


--------------------
:]
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 16:40