Ankündigung

Einklappen
Keine Ankündigung bisher.

Upload - Keine Fehlermeldung, Datei wird aber nicht hochgeladen

Einklappen

Neue Werbung 2019

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

  • Upload - Keine Fehlermeldung, Datei wird aber nicht hochgeladen

    Sodele... und noch ein Problem von mir.

    Ich habe ein Upload-Script für meine Seite geschrieben,
    wo der User das Verzeichnis auswählen kann,
    in das die Datei hochgeladen werden soll.

    Auf den ersten Blick scheint alles wunderbar zu funktionieren,
    falls etwas nicht stimmt, werden Fehlermeldungen ausgegeben,
    wenn alles funktioniert, kommt die Meldung: "Das Bild wurde erfolgreich hochgeladen",
    nur blöderweise ist das nicht der Fall, das Verzeichnis ist immer noch leer.

    Habe ich das Zielverzeichnis falsch angegeben ($verzeichnis wird korrekt übergeben),
    liegt es daran, dass es über Xampp auf http://localhost läuft,
    oder habe ich einfach irgendwo einen Teil des Codes vergessen?
    (letzteres könnte ich mir irgendwie am ehesten vorstellen ^^")

    Naja, hier auf jeden Fall mal das komplette Script,
    ich hoffe, jemand findet meinen Fehler.

    PHP-Code:
    <?php

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

        
    $verzeichnis    $_POST["verzeichnis"];

        
    $arr_erlaube_dateityp = array(gif,jpg,jpeg,png);

        
    $dateiname $_FILES['datei']['name'] ;

    // Dateiendung ermitteln
        
    $punkt strrpos($dateiname'.');
        
    $laenge strlen($dateiname);
        
    $endung strtolower(substr($dateiname, -($laenge $punkt 1)));
        
    $orginal strtolower(substr($dateiname0, -($laenge $punkt)));


    // Fehlerbehandlung 
    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - //
        
    $fehlermeldung ""
        
    $fehler_gefunden ""

    // Name Check 
        
    $errormeldung "Es wurde keine Datei ausgew&auml;hlt\n"
        if (empty(
    $dateiname)) 
        { 
        
    $fehlermeldung $fehlermeldung.$errormeldung 
        
    $fehler_gefunden 
        } 

        
    $errormeldung "Der gew&aumlhlte Dateityp ist nicht erlaubt\n"
        if (!
    in_array($endung$arr_erlaube_dateityp) && !empty($dateiname)) 
        { 
        
    $fehlermeldung $fehlermeldung.$errormeldung 
        
    $fehler_gefunden 


        
    $errormeldung "Die gew&auml;hlte Datei ist zu gro&szlig. Max. 50 KB Dateigr&ouml;&szlig;e sind gestattet.\n"
        if (
    $_FILES['datei']['size'] > (50 1024)) 
        { 
        
    $fehlermeldung $fehlermeldung.$errormeldung 
        
    $fehler_gefunden 
        } 

    // Wenn Fehler - dann Aufruf der Fehlerausgabe, sonst speichern

        
    if ($fehler_gefunden == "1"
        { 
        echo 
    $fehlermeldung
        }
        else 
        {
        
    move_uploaded_file($_FILES['userfile']['tmp_name'], "http://localhost/images/" $verzeichnis "/" $_FILES['datei']['name']);
        echo 
    "<p>Das Bild wurde erfolgreich hochgeladen";
        }



    else 
    {
    ?>

    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
    <input type="hidden" name="action" value="1">
    <table cellpadding="3">
        <tr>
         <td>Verzeichnis:</td>
         <td>
        <select name="verzeichnis" size="1">
            <option value="content">Hauptseite</option>
            <option value="mitglieder">Mitglieds-Foto</option>
            <option value="links">Link</option>
            <option value="download">Download</option>
            <option value="artikel">Zeitungsartikel</option>
        </select> 
        </td></tr>
        <tr>
         <td>Datei:</td>
         <td><input size="30" type="file" name="datei"></td>
         </tr>
        <tr>
         <td>&nbsp;</td>
         <td><input type="submit" name="upload" value="Upload!" /></td>
        </tr>
    </table>
    </form>

    <?php
    }
    ?>


  • #2
    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
    ini_set('display_errors'true);
    Wenn Du das an den Anfang des Skripts schreibst, bekommst Du sicher Warn/Fehlermeldungen.

    Kommentar


    • #3
      Ok, jetzt hab ich folgende Fehlermeldungen:

      Warning: move_uploaded_file(http://localhost/images/content/avatar2.jpg) [function.move-uploaded-file]: failed to open stream: HTTP wrapper does not support writeable connections. in C:\Xampp\htdocs\intern\bilder.php on line 68

      Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Xampp\tmp\phpB4BF.tmp' to 'http://localhost/images/content/avatar2.jpg' in C:\Xampp\htdocs\intern\bilder.php on line 68

      Die betreffende Code-Zeile ist diese hier:

      PHP-Code:
      move_uploaded_file($_FILES['datei']['tmp_name'], "http://localhost/images/" $verzeichnis "/" $_FILES['datei']['name']); 
      Und was sagt mir das jetzt? ^^

      Kommentar


      • #4
        Dass Du kein http://irgendwas bei move_uploaded_file angeben kannst.
        Da sollten übrigens noch mehr Warnungen ausgegeben worden sein.

        Kommentar


        • #5
          Zitat von David Beitrag anzeigen
          Dass Du kein http://irgendwas bei move_uploaded_file angeben kannst.
          Ok, ich habs jetzt mit ../images/ gemacht und diesmal hat es funktioniert o.O
          (genau so ging es vorher aber auch nicht, vllt. hab ich in der Zwischenzeit noch was anderes verändert).

          Zitat von David Beitrag anzeigen
          Da sollten übrigens noch mehr Warnungen ausgegeben worden sein.
          Ich hab da noch ein paar Warnungen "Undefined index" ,
          aber die sind bei mir auf jeder Seite, trotzdem funktioniert alles...
          (Soweit ich das sehe, sind das alles $x = $_GET["y"]; in Fällen wo "y" nicht existiert)

          Aber wenn die Meldungen nicht angezeigt werden, ist das doch kein Problem, oder?
          Oder sollte ich da besser auch erst abfragen, ob "y" existiert, bevor ich $x definiere?

          Kommentar


          • #6
            Ich würde keine einzige Warnung stehen lassen. Wenn ich mal was suche, muss ich mich sonst durch dutzende von Meldungen durchwursteln. Oder andersherum: die wirklich wichtige Warnung sehe ich nicht auf Anhieb, weil ich vorher zu faul war..
            PHP-Code:
            $x = isset($_GET['y']) ? $_GET['y'] : false
            Du solltest aber auch hier
            $arr_erlaube_dateityp = array(gif,jpg,jpeg,png);
            eine Warnung bekommen haben.

            Kommentar


            • #7
              Zitat von David Beitrag anzeigen
              Ich würde keine einzige Warnung stehen lassen. Wenn ich mal was suche, muss ich mich sonst durch dutzende von Meldungen durchwursteln. Oder andersherum: die wirklich wichtige Warnung sehe ich nicht auf Anhieb, weil ich vorher zu faul war..
              PHP-Code:
              $x = isset($_GET['y']) ? $_GET['y'] : false
              Du solltest aber auch hiereine Warnung bekommen haben.

              [/COLOR][/COLOR]
              Das Array hatte ich schon vorher geändert, daher kam da nichts mehr.

              Aber gut, ich denke, es kann nicht schaden die ganzen Fehler rauszumachen ^^
              Auf jeden Fall vielen Dank für deine Hilfe.

              Kommentar

              Lädt...
              X