PHP: Bildupload mit sofortiger Anzeige

Dieses Thema PHP: Bildupload mit sofortiger Anzeige im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Jonowa, 12. Apr. 2005.

Thema: PHP: Bildupload mit sofortiger Anzeige Hallööö, ich möchte auf meiner Club-Page einen Bereich einrichten, in dem jedes Mitglied eigene Bilder für eine...

  1. Hallööö,

    ich möchte auf meiner Club-Page einen Bereich einrichten, in dem jedes Mitglied eigene Bilder für eine Galerie hochladen kann. Das Ganze soll folgendermaßen vonstatten gehen:
    Das Mitglied loggt sich ein und sieht die bisher hochgeladenen Bilder. Ebenfalls auf dieser Seite befindet sich ein Formular, um neue Fotos hochzuladen.
    Bis hierhin funzt bereits alles einwandfrei. Aaaber jetzt kommt mein Problem:
    Nach dem Upload wird immer noch das alte Bild (sehr wahrscheinlich aus dem Cache) angezeigt. Wenn ich nun die Seite aktualisiere, bekomme ich eine Warnmeldung vom Browser.
    Ich habe hier mal eine stark abgespeckte Version dieses Upload-Formulares:

    Code:
    <html>
    <head>
    <title>Datei-Upload</title>
    </head>
    <body>
    <h2>Datei-Upload</h2>
    <center>
      <img src=bild.jpg alt= boder=0>
    </center>
    <hr>
    <form method=post action=<?php echo $PHP_SELF; ?> enctype=multipart/form-data>
      <input type=file name=dateiname>
      <input type=submit value=Bild hochladen>
    </form>
    <?php
      $dateiname = $_FILES['dateiname']['name'];
      $tmp_name = $_FILES['dateiname']['tmp_name'];
      if (!isset ($dateiname)) 
        exit;
      if (!is_uploaded_file ($tmp_name)) {
        echo->Fehler bei der Übertragung!<br>';
        exit;
      }
      $uploadname =->./bild.jpg';
      move_uploaded_file ($tmp_name, $uploadname);
    ?>
    </body>
    </html>
    Ihr könnt das Script auch gerne auf meiner Page testen:
    http://www.peugeot-team-nrw.de/upload.php
    Wie bekomme ich es hin, dass mir das Script nach dem Klick auf Bild hochladen das neue Bild anzeigt?

    Vielen Dank im Voraus
    Jörg
     
  2. Da das Bild ja schon VOR der bearbeitung des Formulars ausgegeben wird, kann das so auch nicht klappen.

    Probiers mal so:

    Code:
    <html>
    <?php
    if($_POST['upload']) {
     $dateiname = $_FILES['dateiname']['name'];
     $tmp_name = $_FILES['dateiname']['tmp_name'];
     if (!isset ($dateiname)) 
      exit;
     if (!is_uploaded_file ($tmp_name)) {
      echo->Fehler bei der Übertragung!<br>';
      exit;
     }
     $uploadname =->./bild.jpg';
     move_uploaded_file ($tmp_name, $uploadname);
    }
    ?>
    <head>
    <title>Datei-Upload</title>
    </head>
    <body>
    <h2>Datei-Upload</h2>
    <center>
     <img src=bild.jpg alt= boder=0>
    </center>
    <hr>
    <form method=post action=<?php echo $PHP_SELF; ?> enctype=multipart/form-data>
     <input type=file name=dateiname>
     <input type=submit name=upload value=Bild hochladen>
    </form>
    </body>
    </html>
    

    gruss conny
     
  3. Leider bringt das auch nichts.
    In meiner eigentlichen Seite steht das Script sogar ganz oben im Dokument.
    Ich habe es auch schon über das META-Tag
    <meta http-equiv=cache-control content=no-cache>
    versucht, aber auch das haut nicht hin.

    Ich muss also so oder so von Hand einen Refresh der Seite machen :-\
    Und dann kommt halt, wie gesagt, diese nervige Meldung.
     
  4. OK, nächster Versuch:

    Code:
    <html>
    <?php
    if($_POST['upload']) {
     $dateiname = $_FILES['dateiname']['name'];
     $tmp_name = $_FILES['dateiname']['tmp_name'];
     if (!isset ($dateiname))
      exit;
     if (!is_uploaded_file ($tmp_name)) {
      echo->Fehler bei der Übertragung!<br>';
      exit;
     }
     $uploadname =->./bild.jpg';
     move_uploaded_file ($tmp_name, $uploadname);
     echo-><script language=javascript type=text/javascript>self.refresh();</script>';
    }
    ?>
    <head>
    <title>Datei-Upload</title>
    </head>
    <body>
    <h2>Datei-Upload</h2>
    <center>
     <img src=bild.jpg alt= boder=0>
    </center>
    <hr>
    <form method=post action=<?php echo $PHP_SELF; ?> enctype=multipart/form-data>
     <input type=file name=dateiname>
     <input type=submit name=upload value=Bild hochladen>
    </form>
    </body>
    </html>
    
    So funktionierts jedenfalls bei mir ;)

    gruss conny
     
  5. Hallo Conny,

    was für einen Browser nutzt du? Bei mir (mit dem IE 6 auf WinXP SP2) haut es beim Besten Willen nicht hin :mad:
    Der IE kennt den Befehl self.refresh() nicht. In meinem JavaScript-Referenzbuch finde ich diesen Befehl auch nicht. Das refresh-Objekt ist eigentlich nur für Plug-Ins gedacht.

    Ich glaube, ich werde mir wohl etwas anderes einfallen lassen. (Evtl. das neue Bild in einem Popup anzeigen lassen. Dann wird schließlich ein ganz neues Dokument erzeugt...) :-\
    Ich denke, es liegt daran, dass ich die geuppte Datei unter einem vorhandenen Dateinamen speichere. Und irgendwie rallt der Browser (oder wer/was auch immer) nicht, dass sich diese Datei nun geändert hat. ???
     
  6. Hallo Conny,

    ich habe es nun endlich geschafft!!
    Es ist zwar nicht sooo elegant, aber das kann ich verantworten  ::)
    Das neue Bild wird in ein neues Fenster geladen, und seltsamerweise wird es nun auch auf der eigentlichen Seite aktualisiert. Im neuen Fenster erscheint noch ein Hinweistext, damit der Benutzer weiß, was Sache ist. Die Bildgröße habe ich auf 1x1 Pixel gesetzt, damit es mehr oder weniger unsichtbar bleibt...
    Hier der Quelltext:
    Code:
    <html>
    <?php
    if($_POST['upload']) {
      $dateiname = $_FILES['dateiname']['name'];
      $tmp_name = $_FILES['dateiname']['tmp_name'];
      if (!isset ($dateiname)) 
        exit;
      if (!is_uploaded_file ($tmp_name)) {
        echo->Fehler bei der Übertragung!<br>';
        exit;
      }
      $uploadname =->./bild.jpg';
      move_uploaded_file ($tmp_name, $uploadname);
      echo-><script language=JavaScript type=text/javascript>';
      echo->var w = window.open(, Upload);';
      echo->var d = w.document;->;
      echo->d.write (Die Bilder wurden aktualisiert.<br>Bitte dieses Fenster schließen.<br>);';
      echo->d.write (<img src='.$uploadname.' width=1 height=1 border=0>);->;
      echo-></script>->;
    }
    ?>
    <head>
    <title>Datei-Upload</title>
    </head>
    <body>
    <h2>Datei-Upload</h2>
    <center>
      <img src=bild.jpg alt= boder=0>
    </center>
    <hr>
    <form method=post action=<?php echo $PHP_SELF; ?> enctype=multipart/form-data>
      <input type=file name=dateiname>
      <input type=submit name=upload value=Bild hochladen>
    </form>
    </body>
    </html>
    
    Trotzdem vielen Dank für deine Bemühngen.

    Gruß, Jörg

    PS: Dieses Script funktioniert übrigens nach ein paar Anpassungen auch mit mehreren Bildern, die gleichzeitig hochgeladen werden können.
     
  7. Hallo zusammen
    Habe auch den Wunsch soetwas anzubieten. Kann mir vielleicht jemand mitteilen wie die Verzeichnisse genannt werden müssen, die ich auf meiner Homepage erstellen muss und was ich sonst noch machen muss? Ich bin absoluter Neuling in PHP. Gruß an alle  Volker
     
  8. http://de3.php.net/manual/de/features.file-upload.php

    Das PHP-Manual weiß fast so viel wie Wikipedia ;) ;D ;D

    gruss conny
     
Die Seite wird geladen...

PHP: Bildupload mit sofortiger Anzeige - Ähnliche Themen

Forum Datum
Ebay Super Seller 2.0 Easy-Absturz bei Bildupload Windows XP Forum 29. Dez. 2004
Remote Desktop mit DNS und sofortiger Menükontrolle Windows XP Forum 11. Sep. 2006