Ankündigung

Einklappen
Keine Ankündigung bisher.

Datei Upload - ausgewählte Datei wieder löschen

Einklappen

Neue Werbung 2019

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

  • Datei Upload - ausgewählte Datei wieder löschen

    Hallo Leute,

    ich bin ganz neu hier im Forum und hoffe es kann mir einer helfen.
    Bin auch ein relativer Neuling auf dem Gebiet PHP.

    Ich sitze gerade vor einem simplen Datei Upload. Der Upload funktioniert auch ohne Probleme!

    Zur Veranschaulichung habe ich ein Bild von dem Upload angehängt.

    Wenn der Bewerber jetzt bei allen fünf Dateien jeweils eine Datei auswählt. Steht in allen Feldern der jeweilige Pfad der ausgewählten Datei.

    Wenn er sich nun dazu entscheidet z.B. eine Datei von den ausgewählten doch nicht hochladen zu wollen, kann man den Pfad von Hand raus löschen.
    Drückt man dann auf bewerben, wird die Datei mit dem gelöschten Pfad aber trotzdem hochgeladen.
    Das verstehe ich nicht so recht, der Pfad der hochhzuladenden Datei wurde doch gelöscht?

    Gibt es eine Möglichkeit eines löschen Buttons der die ausgewählte Datei so löscht das sie beim Absenden nicht mit hochgeladen wird?

    Habe schon das ganze Netz durchsucht aber nichts passendes gefunden.
    Mir scheint es so, als wenn man jedesmal das komplette Formular neu laden muss und nochmals alles ausfüllen muss und die nicht gewünschte Datei dann nicht auswählt.

    Habe auch leider in der Suche nicht gefunden. Kann mir aber nicht vorstellen das ich der Erste mit diesem Problem bin.

    Viele Grüße
    Steffen

  • #2
    Poste bitte deinen Quellcode dazu

    Kommentar


    • #3
      Du kannst einen Löschen Button einbauen, welcher den Wert des File Input mit JavaScript löscht.
      "Software is like Sex, it's best if it's free." - Linus Torvalds

      Kommentar


      • #4
        chim Hier der Quelltext für dich!
        JaMa das hört sich gut an! Hast du mir dafür vielleicht ein beispiel? Tappe da völlig im Dunkeln!

        Danke für die schnelle

        Hier der Quelltext für das einlesen:

        PHP-Code:
        <tdcolspan="2"><tablewidth="100%"border="1">

        &
        lt;tr>

        &
        lt;tdwidth="13%">Bewerbungsschreiben*</td>

        &
        lt;tdwidth="87%"><inputtype="hidden"name="MAX_FILE_SIZE"

        value="2100000"/><label><inputname="userfile[0]"

        type="file"class="userfile"

        id="txtBewerbungsschreiben"size="57"/>

        &
        lt;/label> </td>

        &
        lt;/tr>

        &
        lt;tr>

        &
        lt;td>Lebenslauf*</td>

        &
        lt;td><inputtype="hidden"name="MAX_FILE_SIZE"

        value="2100000"/><label><inputname="userfile[1]"

        type="file"class="userfile"id="txtLebenslauf"

        size="57"/>

        &
        lt;/label><ahref="Anlagen/Lebenslauf.doc"&gtVorlage

        Lebenslauf
        </a></td>

        &
        lt;/tr>

        &
        lt;tr>

        &
        lt;td>Zeugnis 1</td>

        &
        lt;td><inputtype="hidden"name="MAX_FILE_SIZE"

        value="2100000"/><label><inputname="userfile[2]"

        type="file"class="userfile"id="txtZeugnis1"size="57"/>

        &
        lt;/label> </td>

        &
        lt;/tr>

        &
        lt;tr>

        &
        lt;td>Zeugnis 2</td>

        &
        lt;td><inputtype="hidden"name="MAX_FILE_SIZE"

        value="2100000"/><label><inputname="userfile[3]"

        type="file"class="userfile"id="txtZeugnis2"size="57"/>

        &
        lt;/label> </td>

        &
        lt;/tr>

        &
        lt;tr>

        &
        lt;td>Sonstiges</td>

        &
        lt;td><inputtype="hidden"name="MAX_FILE_SIZE"

        value="2100000"/><label><inputname="userfile[4]"

        type="file"class="userfile"id="txtSonstiges"

        size="57"/>

        &
        lt;/label> </td>

        &
        lt;/tr>

        &
        lt;/table></td&gt

        Und hier der Quelltext zum Überprüfen der Dateien:

        PHP-Code:
        * **************************Dateiupload ********************************

        */

        // max. Dateigröße in Bytes

        // 2097152 = 2MB

        $max_byte_size 2097152;

        // Zeitstempel für Dateinamenvergabe festlegen

        $DateiZeitstempel date "U" );



        if (! empty ( 
        $_FILES )) {

        print_r($_FILES); // Anzeige des Array Inhaltes

        for($j 0$j &ltcount $_FILES ['userfile'] ['error'] ); $j ++) {

        // Dateigröße überprüfen

        if ($_FILES ['userfile'] ['size'] [$j] &gt$max_byte_size) {

        echo 
        "<script type='text/javascript'>alert('Die von Ihnen angegebene Datei "" . $_FILES ['userfile'] ['name'] [$j] . "" ist zu gross! Maximale Groesse pro Datei: 2 MB bzw. 2097152 Bytes.');</script>";

        echo 
        "<script type='text/javascript'>history.back();</script>";

        }

        switch (
        $_FILES ['userfile'] ['error'] [$j]) {

        // Fall 1: Keine Fehlermeldung vorhanden- Dateien werden aus temporärem Verzeichnis in angegebenen Ordner kopiert

        case UPLOAD_ERR_OK :

        for(
        $i 0$i &ltcount $_FILES ['userfile'] ['tmp_name'] ); $i ++) {

        if (isset ( 
        $_FILES ['userfile'] ['tmp_name'] [$i] ) and ! $_FILES ['userfile'] ['error'] [$i]) {

        // Dateiendung ermitteln

        $name_array explode '.'$_FILES ['userfile'] ['name'] [$i] );

        // Zeiger auf letztes Element in Array setzen

        end $name_array );

        // Schluessel des letzten Elements ermitteln

        $d key $name_array );

        // Dateiendung

        $suffix $name_array [$d];

        // Neuen Dateinamen zusammensetzen

        // Da die Schleife mit 0 beginnt, addieren wir für den Dateinamen 1 dazu.

        $Nummer $i 1;

        // Dateiname zusammensetzen

        $Dateiname "Anhang" $Nummer "." $suffix;

        $Dateianhang [$i] = "bew_" $DateiZeitstempel "_" $Dateiname;

        // Datei verschieben

        move_uploaded_file $_FILES ['userfile'] ['tmp_name'] [$i], 'D:/uploads/pol/bew/' $Dateianhang [$i] );

        }

        }

        break;

        case 
        UPLOAD_ERR_FORM_SIZE :

        case 
        UPLOAD_ERR_INI_SIZE :

        echo 
        "<script type='text/javascript'>alert('Die von Ihnen angegebene Datei "" . $_FILES ['userfile'] ['name'] [$j] . "" ist zu gross! Maximale Groesse pro Datei: 2 MB bzw. 2097152 Bytes. XXX');</script>";

        echo 
        "<script type='text/javascript'>history.back();</script>";

        return;

        break;

        case 
        UPLOAD_ERR_PARTIAL :

        case 
        UPLOAD_ERR_INI_SIZE :

        echo 
        "<script type='text/javascript'>alert('Defaultie von Ihnen angegebene Datei "" . $_FILES ['userfile'] ['name'] [$j] . "" konnte nicht geladen werden! Maximale Groesse pro Datei: 2 MB bzw. 2097152 Bytes.');</script>";

        echo 
        "<script type='text/javascript'>history.back();</script>";

        return;

        break;

        }

        }

        }

        /**

        * **************************Dateiupload ENDE******************************** 

        Kommentar


        • #5
          Der Quelltext ist nicht richtig formatiert. Verwende die PHP Code Tags.

          Du kannst ein input type="reset" Button nehmen damit dir das Formular insgesamt gelöscht wird oder du fügst hinter jedem Input ein Button ein und löst das mit Javascript für das Element individuell aus. Siehe dazu https://stackoverflow.com/questions/...t?noredirect=1

          Kommentar


          • #6
            Zitat von protestix Beitrag anzeigen
            Der Quelltext ist nicht richtig formatiert. Verwende die PHP Code Tags.

            Du kannst ein input type="reset" Button nehmen damit dir das Formular insgesamt gelöscht wird oder du fügst hinter jedem Input ein Button ein und löst das mit Javascript für das Element individuell aus. Siehe dazu https://stackoverflow.com/questions/...t?noredirect=1
            Mit einem Reset Button müsste aber jedes mal das ganze Formular neu ausgefüllt werden. Ich glaube darauf hat niemand so wirklich Lust, nur weil er eine falsche Datei hochgeladen hat


            Bzgl. Code Beispiel, habe ich hier einen jQuery Code von mir. Geht aber auch nur mit JavaScript.

            PHP-Code:
            $('#fileReset').on('click', function(e){
               var 
            inputField = $('#inputField');
               
            inputField.wrap('<form>').closest('form').get(0).reset();
               
            inputField.unwrap();
            }); 
            Das legt um das ausgewählte Input Feld ein neues Form, resettet dieses und entfernt das Form wieder. Hat den Vorteil, dass das eigentliche Element bestehen bleibt (gerade wegen EventListenern).

            Ansonsten kannst du auch den Value null setzen oder das Input Feld aus dem DOM löschen und neu anlegen (durch clonen). Allerdings verhält sich das in diversen Browsern unterschiedlich.
            "Software is like Sex, it's best if it's free." - Linus Torvalds

            Kommentar


            • #7
              Ist doch genau das was ich geschrieben habe, nur das ich bezüglich javascript auf stackoverflow verwiesen habe.

              Kommentar


              • #8
                Na hoppla, habe ich wohl übersehen, sorry.
                "Software is like Sex, it's best if it's free." - Linus Torvalds

                Kommentar


                • #9
                  Danke euch allen! Hat mir sehr weitergeholfen, habe es nun mit Javascript hinbekommen! Habe wie ihr geschrieben habt das Feld gelöscht!

                  Kommentar

                  Lädt...
                  X