Frage zum Fileupload

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

  • Frage zum Fileupload

    Hallo leute ich habe da mal eine kleine Frage ich schreibe gerade ein upload script, doch kann es vorkommen das beim absenden wenn nicht alle formularfelder ausgefüllt sind. Mein problem ist nun das ich gern möchte das beim Neuladen des Formulars der pfad zur Datei im formular drin bleibt.Bei den anderen Feldern machen ich das über value = $_POST...... aber mit $_FILE.. geht das nicht. Wäre nett wenn mir da jemand weiterhelfen könnte
    mfg
    mo

  • #2
    Mein problem ist nun das ich gern möchte das beim Neuladen des Formulars der pfad zur Datei im formular drin bleibt.Bei den anderen Feldern machen ich das über value = $_POST...... aber mit $_FILE.. geht das nicht.
    Vergiss es!
    Keine Chance.
    Das ist aus Sicherheitsgründen verboten.
    Wir werden alle sterben

    Kommentar


    • #3
      Du kannst in einem Upload-Feld kein Value setzen.

      Peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        Alles klar
        mfg mo

        Kommentar


        • #5
          da kannst du allenfalls "tricksen" ..

          per z-index das File-Upload Element in den Vordergrund und gleichzeitig 100% durchsichtig

          an die gleiche Stelle legst du an einen darunter-liegenden z-index ein normales Eingabefeld + Button.

          Dem File-upload verpasst du ein kleines Javascript

          HTML-Code:
          onchange="this.form.fakeupload.value=this.value;" 
          - wobei fakeupload die id von dem "normalen" Eingabefeld ist


          dadurch hast du die Dateiauswahl im richtigen Fileupload - und im Eingabefeld steht der Pfad zumindest drin -

          du müsstest die Datei natürlich trotzdem sofort transferieren (move_uploaded....) - aber zumindest für den Benutzer kannst du die Illusion aufrecht erhalten, durch das normale Eingabefeld, dem du per PHP natürlich das Value passend setzen kannst.

          Du musst halt nur abfangen, dass die Datei schon hochgeladen wurde - denn mit dem normalen Eingabefeld gibt es keinen Upload
          [font=Verdana]
          Wer LESEN kann, ist klar im Vorteil!
          [/font]

          Kommentar


          • #6
            und im Eingabefeld steht der Pfad zumindest drin
            Nein, du kommst nicht an den Client Pfad. Mit keinen Mitteln.
            Nur der Dateiname ist $_FILES zu entnehmen.

            Ausnahme:
            IEs vor Version 6(??) hatten da eine Sicherheitslücke
            Wir werden alle sterben

            Kommentar


            • #7
              ja nu - der Dateiname ist ja auch, was nach der Auswahl im Upload-Element steht - genau das bekommt er ins Eingabefeld übertragen
              [font=Verdana]
              Wer LESEN kann, ist klar im Vorteil!
              [/font]

              Kommentar


              • #8
                Würde eine minimal andere Vorgehensweise zu der von @eagle275 wählen:

                Wenn bei einem unvollständigen POST bereits eine Datei übertragen wurde, sollte dein verarbeitendes Script die Datei bereits verarbeiten/verschieben oder was du halt damit machen willst, bzw. sie temporär zwischenspeichern. Muss das Formular dann wegen noch fehlender Angaben erneut angezeigt werden, kommt an die entsprechende Stelle ein (deutlicher) Hinweis mit dem Dateinamen und vielleicht im Fall eines Bildes ein Thumbnail oder bei anderen Dateien ein entsprechendes Symbol.

                Du kannst dir dann noch überlegen, ob du das File-Input nochmal anbietest um dem Benutzer die Möglichkeit zu geben eine andere Datei auszuwählen oder ob du das File-Input weglässt, wenn bereits eine Datei hochgeladen wurde.
                Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                Schön - etwas Geschichte kann ja nicht schaden.
                Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                Kommentar

                Lädt...
                X