Ankündigung

Einklappen
Keine Ankündigung bisher.

Upload funktioniert nicht!?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Upload funktioniert nicht!?

    Hallo,

    ich habe folgendes Problem. Der User soll eine Bilddatei auf den Server laden können die dann in ein Verzeichnis gespeichert werden soll.

    Dazu folgendes Formular:

    Code:
    <html>
    <head>
    <title>JPG-File hochladen</title>
    
    </head>
    <body>
    <form enctype="multipart/form-data" action="up.php" method="POST">
    Datei:<input type="file" name="datei">
    <br>
    <input type="submit" value=" Send File ">
    
    <input type="hidden" name="MAX_FILE_SIZE" value="30000">
    <input type="hidden" name="action" value="upload">
    </form>
    </body>
    </html>
    Und hier das Upload-Script:

    PHP-Code:
    <?php

    if (isset($_POST['action']) && $_POST['action'] != ""

        
    $dateiname $_FILES['datei']['name'] ;
    echo 
    $dateiname;
    // Dateiendung ermitteln
        
    if (!eregi(".jpg$"$dateiname)) {
        echo 
    "Sie haben keinjpg- File gewählt. Bitte den Zurück-Button nutzen.";
        exit;
            }

        
    move_uploaded_file($_FILES['datei']['tmp_name'], "../temp/" $_FILES['datei']['name']);
        echo 
    "<p>Das Bild wurde erfolgreich hochgeladen";
    }
    ?>
    Also es kommt zwar die Nachricht das das Bild hochgeladen wurde,
    aber das wird es nicht!

    Ich muß dazu sagen, da es sich um einen Test handelt, versuche ich das auf dem localhost.

    Ich wäre sehr dankbar wenn mir jemand helfen könnte.

    Mfg

  • #2
    ereg() ist veraltet, verwende besser PHP: PCRE - Manual
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    ini_set('display_errors'true);

    if (isset(
    $_POST['action']) && $_POST['action'] != "")
    versuch es mal so

    Kommentar


    • #3
      error_reporting und ini_set sind in der konfig-datei schon so gesetzt.

      Kann es sein das es an der Max_file_size liegt? Und wenn ja wie überprüfe ich die?


      Und ich hab noch ne Frage. Ich will es so machen, das der User Name und Vorname mit angibt. Wenn dann ein Bild hochgeladen wird, soll ein Verzeichnis angelegt werden das den Namen und den Vornamen enthält.
      Das Bild soll dann in dieses Verzeichnis kopiert werden.

      Vielleicht sogar noch ein Unterverzeichnis mit dem Datum.


      Mfg

      Kommentar


      • #4
        Wenn es an der max_file_size liegen würde, würde dein Verarbeitungsscript gar nicht aufgerufen werden, weil der Browser dann einfach irgendwann abbrechen würde, was leider ein ziemliches Problem im Internet darstellt. Es gibt viele Versuche das zu lösen, aber alleine mit PHP ist es (meines Wissens) nicht möglich.

        Und Verzeichnisse erstellt man mit mkdir() und verschieben kannst du ja mit move_uploaded_file()

        Kommentar


        • #5
          Beim Überschreiten von max file size wird das Skript trotzdem ausgeführt und in $_FILES[][error] steht dann der Wert 2 (UPLOAD_ERR_FORM_SIZE)
          PHP: Manual Quick Reference

          Schreib vorsichtshalber jetzt zum Debuggen die beiden error_reporting und display_errors Zeilen in das Skript und vielleicht noch
          PHP-Code:
          echo "<pre>"var_dump($_FILES); echo "</pre>"

          Kommentar


          • #6
            Also ich hab das Bild mal verkleinert(Datengröße) und siehe da es klappt.

            Hab schon das nächste Problem.

            Ich erstelle ein Verzeichnis aus Namen, Vornamen und Datum.
            Wenn es noch nicht vorhanden ist, wird es angelegt. Das klappt auch alles wunderbar.

            Jedoch erhalte ich dann diese Meldung:
            Code:
             
            Warning:  move_uploaded_file() [function.move-uploaded-file.html]: Unable to access RettigLars29 March 2008/Goebel.jpg in D:\Webserver\Web\Foto\up.php on line 20
            Meine mkdir() Funktion sieht so aus:
            PHP-Code:
            $datum=date("d F Y");
            $verzeichnis=$_POST['name'].$_POST['vname'].$datum;

            mkdir($verzeichnis,0777); 
            Das Verzeichnis wird wie gesagt angelegt, aber die Datei wird nicht kopiert.

            Mfg

            Kommentar


            • #7
              Ich würde das ganze mal so versuchen, dass keine Leerzeichen im Ordnernamen sind. Mach einfach _ oder - beim Datum hin.

              @David: Dein Link funktioniert nicht (zumindest wohl nicht so, wie du wolltest).

              Kommentar


              • #8
                Stimmt, das .php am Ende muss weg.
                PHP: Fehlermeldungen erklärt - Manual

                Kommentar

                Lädt...
                X