Bilderupload funktioniert nicht

buddymaster

Mitglied
Hallo, ich habe ein Problem mit meinem Bilder-Upload Script. Ich möchte Bilder in neue Verzeichnisse ablegen, wenn es diese noch nicht gibt, ansonsten in schon bestehenden Verzeichnisse!
HTML:
<h2>Bilder Upload</h2>
<span class="sp2">
<form enctype="multipart/form-data" action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<input type="hidden" name="check" value="check"/>
<input type="text" name="Titelneu"/> Bitte hier den neuen Ordner/ den Titel der Erlebnisse angeben!<br />
<input type="text" name="Titelalt"/> Bitte hier den schon bestehenden Ordner/ den Titel der Erlebnisse angeben!<br />
<input type="file" name="file" /><br />
<input type="submit" value="Hochladen" />
</form>
<br />
<h4>Schon bestehende Verzeichnisse</h4>
<ul>
PHP:
<?php
error_reporting(E_ALL);

    include 'blabla...;


    @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die(mysql_error());
    mysql_select_db(MYSQL_DATABASE) OR die(mysql_error());

    $sql = "SELECT
                ID,
                Titel,
                Fotoname
            FROM
                erlebnisse
            WHERE
                Fotoname !=''
            ORDER BY
                Titel;";

    $result = mysql_query($sql) OR die(mysql_error());

      if(mysql_num_rows($result)) {
        while($row = mysql_fetch_assoc($result)) {
            echo "<li style=\"list-style-image: url(ordner_ul.gif);\"><span style=\"color: red;\">" . $row['Titel'] . "</span>/[Bilderdateien]</li>\n";
        } }
         else {
        echo "Es sind keine Erlebnisse in der Datenbank vorhanden<br />\n";
    }
?>

</ul>

<?php
if (!empty($_POST['check'])) {

        $tempname = $_FILES['file']['tmp_name'];
        $Titelneu = $_POST['Titelneu'];
        $Titelalt = $_POST['Titelalt'];
        $name = $_FILES['file']['name'];
        $type = $_FILES['file']['type'];
        $size = $_FILES['file']['size'];

        if($type != "image/gif" && $type != "image/jpeg" && $type != "image/jpg" && $type != "image/JPG" && $type != "image/Jpg") {
            $err[] = "<br /><br />Nur gif und jpeg Dateien dürfen hochgeladen werden.";
        }
        if($size > "5000000") {
            $err[] = "<br /><br />Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 5 MB!";
        }
        if(empty($err)) {
            if (!empty($Titelneu)) {
                mkdir ( "erlebnisse/$Titelneu", 0700 );
                copy("$tempname", "erlebnisse/$Titelneu/$name");
                echo "<br /><br />Ihre Datei" . $name . "wurde erfolgreich in den neuen Ordner hochgeladen!";
                $Titelneu = '';
                $Titelalt = '';
                }
            else {
                copy("$tempname", "erlebnisse/$Titelalt/$name");
                echo "<br /><br />Ihre Datei" . $name . "wurde erfolgreich in den bestehenden Ordner hochgeladen!";
                $Titelneu = '';
                $Titelalt = '';
                    }
             }
        else {
            foreach($err as $error)
            echo "$error<br>";
        } }
?>

Kann mir jemand sagen, wo der/ die Fehler liegt/liegen?!
 
Was hast du denn für ein Problem?

Beim Einfügen hast du hinter dem Include ein Hochkomma (') vergessen, weiß aber nicht ob das dein Problem löst.
 
Zuletzt bearbeitet:
Das Hockomma ist nur beim Übertragen verloren gegangen!

Mein Problem ist, das das Script nicht funktioniert. Es gibt zwar immer das richtige Echo aus: Z.B. Ihre Datei" . $name . "wurde erfolgreich in den neuen Ordner hochgeladen!, aber wenn ich über meinen FTP Client dann nachschaue, ist nichts passiert. Es wurde nichts hochgeladen!
 
Hi,

nimm statt copy move_uploaded_file und speicher das Ergebnis in einer Variable:

PHP:
$result = move_uploaded_file();
if (!$result)
{
switch ($_FILES['file']['error'])
{
case 1:
$err[] = "upload_max_filesize überschritten";
break;
						
case 3:
$err[] = "Die Datei wurde nur teilweise hochgeladen";
break;
}
}

Eine Liste mit möglichen Fehlern:
http://www.php.net/manual/en/features.file-upload.errors.php

Und viell. mal die ganzen Variablen mit echo ausgeben lassen um zu sehen welche Werte die haben.
 
Ich habe eben noch mal in mein Verzeichnisse geschaut. Und eben waren die Dateien und auch neuen Ordner mit den Ich den Upload getestet habe, da! Das heißt das Script funktioniert doch.

Aber kann mir einer die Frage beantworten, warum dassolange dauert, bis diese Dateien angezeigt werden?
 
Zurück