Silvia Zeiss-Ribbe: Animation während Hochladen?

Hallo,

ich verwende ein recht einfaches Skript zum Hochladen von Dateien:

<?php
if($_REQUEST['Send'])
{
    if($_FILES['Datei']['tmp_name'])
    {
        echo"Ihre Datei (&quot;",
            $_FILES['Datei']['name'],
            "&quot;) ist ",
            $_FILES['Datei']['size'],
            " Bytes groß.";
        move_uploaded_file($_FILES['Datei']['tmp_name'], "upload/".$_FILES['Datei']['name']);
    }
    else
    {
        echo"Bitte geben Sie eine Datei an!";
    }
}
else
{
?>

<html>
<head>
<title>Datei-Upload</title>
</head>
<body>
<form action="<?php echo$_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data" method="post">
<input name="Datei" type="file"><br>
<input name="Send" type="submit" value="Upload">
</form>
</body>
</html>

<?php
}
?>

Jetzt ist es aber so, dass nach dem Klick auf "Upload" die Seite so "stehen bleibt", erst wenn der Upload abgeschlossen ist, wird die Seite neu geladen.

Gibt es eine - einfache - Möglichkeit, WÄHREND des Hochladens eine GIF-Animation einzubinden?

Grüße

  1. Hello,

    ich verwende ein recht einfaches Skript zum Hochladen von Dateien:

    <?php
    if($_REQUEST['Send'])

    Warum nicht if(isset($_POST['send')) ?

    {
        if($_FILES['Datei']['tmp_name'])

    warum nicht  if (isset($_FILES[$formfieldname]['error'] and $_FILES[$formfieldname]['error'] === 0) ?

    move_uploaded_file($_FILES['Datei']['tmp_name'], "upload/".$_FILES['Datei']['name']);

    Nett, dass Du auch das Hochladen von PHP-Scripten (uns sonstigen Executables) gestattest.
    Du weißt hoffentlich, dass es Batterien von Spam-Robots gibt, die nichts anders machen, als schlcht gemachte Uploadscript zu suchen, um dann gut gemachte Scripte einzuschleusen, um damit im Anschluss den Host übernehmen zu können? Die Scripte sind dann natürlich wieder verschwunden, aber dafür hast du einen wunderbaren Daemon auf deinem Host, derDir auch normalerweise nicht auffallen wird.

    Jetzt ist es aber so, dass nach dem Klick auf "Upload" die Seite so "stehen bleibt", erst wenn der Upload abgeschlossen ist, wird die Seite neu geladen.

    Gibt es eine - einfache - Möglichkeit, WÄHREND des Hochladens eine GIF-Animation einzubinden?

    Das ginge nur über eine aktive Client-Komponente, wie z.B. Flash oder über einen "Ajax"-Request, der vor dem Upload ausgelöst wird.

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  2. (Hallo|Hi(ho)|Tag) Silvia Zeiss-Ribbe,

    ich verwende ein recht einfaches Skript zum Hochladen von Dateien:
    <?php
    ...
    ?>

    <html>
    ...
    ?>

    Jetzt ist es aber so, dass nach dem Klick auf "Upload" die Seite so "stehen bleibt", erst wenn der Upload abgeschlossen ist, wird die Seite neu geladen.

    Gibt es eine - einfache - Möglichkeit, WÄHREND des Hochladens eine GIF-Animation einzubinden?

    Mein Browser zeigt während eines Uploads eine "Animation" inklusive der hochgeladenen
    Datenmenge. So gesehen kann ich auf solchen Schnick-Schnack verzichten.
    ;-)

    Der Dateiupload in PHP wird intern gehandled. Wenn du auf $_FILES zugreifen kannst, ist alles schon vorbei. Die Datei ist
    oben. Wenn du direkt nach dem Aktivieren des Submit-Buttons im Browser was anzeigen willst, benötigst du JavaScript.
    Damit kannst du dann irgendeine (animierte GIF-)Grafik einbinden.

    Willst du genauere Informationen (die Menge der hochgeladenen Daten) anzeigen, gibts in PHP keine einfache Lösung -- zumindest
    kenne ich keine. Die gängigen Lösungen sind:

    1. Es wird ein Perl-Script zum Upload benutzt. In Perl wird der Dateiupload über das Modul CGI erledigt. Dies erlaubt die
    Angabe einer so genannten Hook-Funktion, die Daten über den Upload liefern kann.

    2. Seit PHP 5.2 kann man eine spezielle Extension einbinden, die Rückmeldungen über den Upload liefern kann:
    http://pecl.php.net/package/uploadprogress

    3. Ältere PHP-Versionen kann man eventuell patchen, damit sie Upload-Rückmeldung geben können:
    http://bluga.net/projects/uploadProgressMeter/

    Alle drei Methoden benötigen auf der Client-Seite einen Browser der mit
    Remote-Scripting (im Volksmund als AJAX bekannt) ansteuerbar ist, damit
    dieser die Upload-Informationen auch abfragen kann.

    MffG
    EisFuX

    1. Hiho!

      Alle drei Methoden benötigen auf der Client-Seite einen Browser der mit
      Remote-Scripting (im Volksmund als AJAX bekannt) ansteuerbar ist, damit
      dieser die Upload-Informationen auch abfragen kann.

      Was laeuft denn bei Dir unter Volksmund? Das Volk versteht unter Ajax was zum Saubermachen... ;)

      1. (Hallo|Hi(ho)|Tag) Steel,

        Remote-Scripting (im Volksmund als AJAX bekannt) ansteuerbar ist,

        Was laeuft denn bei Dir unter Volksmund? Das Volk versteht unter Ajax was zum Saubermachen... ;)

        Keine Ahnung, der Web-Developer-Volksmund? Ich habs ja auch extra mit Großbuchstaben geschrieben ... ;-)

        MffG
        EisFuX

        1. Na gut... Developervolk... Lass ich mal durchgehen. (obwohl es so ja nicht grad freundlich klingt)

          1. (Hallo|Hi(ho)|Tag) Steel,

            Na gut... Developervolk... Lass ich mal durchgehen. (obwohl es so ja nicht grad freundlich klingt)

            *hust*

            http://de.wikipedia.org/wiki/Volksmund

            »2. ... bezieht man sich mit dem Ausdruck „Volksmund“ oder mit der Wendung „dem Volk aufs Maul geschaut“ allerdings viel häufiger speziell auf gern gebrauchte, oft besonders treffende oder beliebte Einzelausdrücke oder Schlagworte, Sentenzen und Sprüche aller Art, allgemein übliche oder stehende Redewendungen („geflügelte Worte“), insbesondere Sprichwörter, Volks- oder Lebensweisheiten, ...«

            Das drückt in etwa aus, wie ich es gemein hatte ...

            Google.de meint übrigens, dass das gemeine nicht-webdevelopende Volk, das
            nach "AJAX" sucht, sich für Fußball interessiert:
            http://www.google.de/search?hl=de&q=AJAX

            MffG
            EisFuX

  3. Moin!

    Jetzt ist es aber so, dass nach dem Klick auf "Upload" die Seite so "stehen bleibt", erst wenn der Upload abgeschlossen ist, wird die Seite neu geladen.

    Gibt es eine - einfache - Möglichkeit, WÄHREND des Hochladens eine GIF-Animation einzubinden?

    Das direkt nicht, aber du kannst onsubmit was einblenden.

    Ansonsten hat dein Skript ja keinerlei Sicherheitschecks! Echt übel!

    - Sven Rautenberg

    --
    "Love your nation - respect the others."