Jimmy: dateiupload...

Hallo @ALL!

was ich machen will, gibt es eigentlich schon auf vielen Websites.
Wie kann ich dem user:
A. eine form zur verfügung stellen, wo er eine datei aussuchen kann?
und
B. Wie lautet der PHP quelltext, damit dieser die datei annimt und auf'm server abspeichert?

VIELEN DANK FÜR EURE ANTWORTEN! =)

Mit freundlichen Grüssen Jimmy

  1. Hallo Jimmy,

    Wie kann ich dem user:
    A. eine form zur verfügung stellen, wo er eine datei aussuchen kann?

    </selfhtml/sfausles/tsfa_teh.htm>

    B. Wie lautet der PHP quelltext, damit dieser die datei annimt und auf'm server abspeichert?

    http://www.koehntopp.de/php/faq-webvariablen.html#webvariablen-7

    Beste Gruesse

    Jan

    1. hallo Jan...
      also nach genauem studieren deiner hilfe ist mir nur alles kalr, jedoch haber ich noch eine frage damit der server nicht überlastet wird... :-)

      darin steht geschrieben:
      "PHP legt die temporäre Datei in dem angegebenen Verzeichnis an und löscht sie am Ende des Scriptes wieder. Die Datei darf maximal die angegebene Größe haben. Ein Einstellen der Größenbegrenzung begrenzt jedoch nicht wirklich den Plattenplatz, der auf dem Server von PHP durch Fileupload verbraucht wird: Aus technischen Gründen muß PHP die Datei zunächst empfangen und kann sie erst dann verwerfen, wenn sie zu groß ist."

      wie kann ich denn ein uploaden von dateien, die grösser als 2MB sind verhindern bevor diese hochgeladen werden um unnötiger servertraffic zu vermeiden??

      MFG Jimmy

      1. Hi Jimmy,

        wie kann ich denn ein uploaden von dateien, die grösser als 2MB sind verhindern bevor diese hochgeladen werden um unnötiger servertraffic zu vermeiden??

        Mit einem hidden field in Deinem Formular:

        <input type="hidden" name="MAX_FILE_SIZE" value="1000">

        Die Dateigroesse (hier 1000) wird dabei in Byte angegeben.

        Beste Gruesse

        Jan

        1. Hi Jan! :-)

          <input type="hidden" name="MAX_FILE_SIZE" value="1000"> geht nicht...

          ich habe es versucht, jedoch ohne erfolg... d.h. es geht zwar schon jedoch erst nach dem upload fängt er an zu mekern... was ich jedoch will ist, dass files die zu gross sind gar nicht erst vom server akzeptiert werden... :-)
          denn es ist doch a für den user nervig und b. bolckiert auch meinen server... ;-)
          und bei meiner "lahmen" verbindung bin ich schon für jeden vermiedenen traffic dankbar... :-)

          • Jimmy -
          1. Hallo Jimmy

            <input type="hidden" name="MAX_FILE_SIZE" value="1000">

            ich habe es versucht, jedoch ohne erfolg... d.h. es geht zwar schon jedoch erst nach dem upload fängt er an zu mekern... was ich jedoch will ist, dass files die zu gross sind gar nicht erst vom server akzeptiert werden... :-)

            if (isset($file) && ($file_size < $MAX_FILE_SIZE)) {
               copy ($file, $new_file_location) ;
            } else { echo "Fehler: Datei existiert nicht oder zu gross!"; }

            so müsste es ja klappen wenn man http://www.php.net/manual/en/html/features.file-upload.html glauben schenken kann ;-)

            Ausserdem ist in der PHP.ini eine bestimmte Dateigrösse vorgegeben, die nicht überschritten werden darf! Du kannst sie dir mit phpinfo() heraussuchen!

            lg bernhard

            1. Hallo Berhard... :-)

              if (isset($file) && ($file_size < $MAX_FILE_SIZE)) {
                 copy ($file, $new_file_location) ;
              } else { echo "Fehler: Datei existiert nicht oder zu gross!"; }

              so müsste es ja klappen wenn man http://www.php.net/manual/en/html/features.file-upload.html glauben schenken kann ;-)

              ich weiss woran es liegt... :-)
              es liegt am apache webserver... dieser akzeptiert einfach alle files die dem php überliefert werden... wenn nun die mindest-datei grösse überschritten wurde, dann verhindert er das kopieren vom temp verzeichniss zum richtigen verzeichniss...

              wie kann ich dem apache webserver klar machen, dass er zu grosse files gra nicht erst anhemen muss??

              MFG MARCO

              1. Hallo Jimmy

                es liegt am apache webserver... dieser akzeptiert einfach alle files die dem php überliefert werden... wenn nun die mindest-datei grösse überschritten wurde, dann verhindert er das kopieren vom temp verzeichniss zum richtigen verzeichniss...

                imho liegt das eher am php als am apache. Dort gibt es nämlich eine Beschränkung für die Grösse der Daten, die mit POST upgeloadet (cool!) werden können!

                wie kann ich dem apache webserver klar machen, dass er zu grosse files gra nicht erst anhemen muss??

                In der php.ini.dist ist in der Zeile 214 der Eintrag:
                post_max_size = 8M ; Maximum size of POST data that PHP will accept.

                lg bernhard