Ergebnis 1 bis 13 von 13

Thema: "uploadeskript" welches auf funpic.de gehen sollte

  1. #1

    "uploadeskript" welches auf funpic.de gehen sollte

    Ich bräuchte ein Skript welches ein Bild hochlädt in ne Variable (falls sowas geht) und ich diese Variable dann später aufrufen kann (also nach dem hochladen).

    Ist sowas machbar?

    Es soll also nicht gespeichert werden auf dem Webspace.

    Dennis

  2. #2
    Vielleicht hilft dir das?
    http://forum.worldofplayers.de/forum...ad.php?t=50132

    edit:
    oder meinst du, dass du das Bild dann darstellen kannst? In dem Fall müsstest du die Date einlesen:

    PHP-Code:
    <?php

    $file 
    fopen($_FILES['img']['tmp_name'], "r"); // Datei öffnen
    $inhalt fread($file$_FILES['img']['size']); //einlesen
    $bild_var base64_encode($inhalt); // In Variable speichern
    fclose($file); // Datei schließen

    ?>
    Damit häätest du das Bild in einer Variable. Um es wieder auszugeben:

    PHP-Code:
    <?php

    header
    ("Content-Type: image/jpg");
    echo 
    base64_decode($bild_var);

    ?>

    Geändert von Kermit.d (08.01.2005 um 16:17 Uhr)

  3. #3
    Ich denke nicht, dass ihm das sehr viel weiter hilft, weil er die Datei ja nicht speichern wollte. Das Formular muss zwar genau so sein, aber das Skript muss ein bisschen anders aussehen:
    PHP-Code:
    <?php
    if (isset($_FILES['img']))
    {
        switch (
    $_FILES['img']['type'])
        {
            case 
    "image/pjpeg":
            case 
    "image/jpeg":
            case 
    "image/png":
            case 
    "image/gif":
                
    // Gültiges Dateiformat also speichern
                
    $image file_get_contents($_FILES['img']['tmp_name']);
                break;
            default:
                
    // Kein gültiges Dateiformat also abbrechen
                
    break;
        }
    }
    ?>
    So sollte in der Variable $image dann das Bild gespeichert sein, sodass du es dann einfach mit echo ausgeben kannst (korrigiere mich, wenn ich falsch liege).
    Wie immer: untested!

  4. #4
    Zitat Zitat von getöteter_ork
    Ich denke nicht, dass ihm das sehr viel weiter hilft, weil er die Datei ja nicht speichern wollte. Das Formular muss zwar genau so sein, aber das Skript muss ein bisschen anders aussehen:
    PHP-Code:
    <?php
    if (isset($_FILES['img']))
    {
        switch (
    $_FILES['img']['type'])
        {
            case 
    "image/pjpeg":
            case 
    "image/jpeg":
            case 
    "image/png":
            case 
    "image/gif":
                
    // Gültiges Dateiformat also speichern
                
    $image file_get_contents($_FILES['img']['tmp_name']);
                break;
            default:
                
    // Kein gültiges Dateiformat also abbrechen
                
    break;
        }
    }
    ?>
    So sollte in der Variable $image dann das Bild gespeichert sein, sodass du es dann einfach mit echo ausgeben kannst (korrigiere mich, wenn ich falsch liege).
    Wie immer: untested!
    Oô Was fürn Formular?

    Des bei WoP?

    Dennis

  5. #5
    Genau das Formular bei WoP meinte ich, ja. Das Skript habe ich ja auch nur geringfügig geändert.

    Nachtrag: Ich nehme an du weißt, dass ein Bild nur einzeln ausgegeben werden kann und du nicht mitten in einer HTML-Datei dann schreiben kannst "echo $image".

  6. #6
    Zitat Zitat von getöteter_ork
    Genau das Formular bei WoP meinte ich, ja. Das Skript habe ich ja auch nur geringfügig geändert.

    Nachtrag: Ich nehme an du weißt, dass ein Bild nur einzeln ausgegeben werden kann und du nicht mitten in einer HTML-Datei dann schreiben kannst "echo $image".
    Also ohne sowas zB.:
    Dieses Bild hast du zu geheimen geheim zwecken hochgeladen <?php echo $image ?>
    Geht also net?

    Dennis

  7. #7
    Schon, aber du kannst z.B. nicht das so aufbauen:
    PHP-Code:
    <?php
    echo 'Das Bild, das du hochgeladen hast:<br />'
    // Das ist alles FALSCH
    echo $image;
    echo 
    '<img src="'.$image.'" />';
    ?>
    Ich muss mich allerdings für mein Missverständnis entschuldigen, weil mir fällt gerade ein, dass es so gehen müsste:
    PHP-Code:
    <?php
    echo 'Das Bild, das du hochgeladen hast:<br /><img src="'.$_FILES['img']['tmp_name'].'" />';
    ?>
    Dann brauchst du den ganzen anderen Mist nicht §doof

  8. #8
    Zitat Zitat von getöteter_ork
    ...
    Ich muss mich allerdings für mein Missverständnis entschuldigen, weil mir fällt gerade ein, dass es so gehen müsste:
    PHP-Code:
    <?php
    echo 'Das Bild, das du hochgeladen hast:<br /><img src="'.$_FILES['img']['tmp_name'].'" />';
    ?>
    Dann brauchst du den ganzen anderen Mist nicht §doof
    *kopfschüttel* Ich denke nicht das es so funktioniert. Denn so weiß der Browser ja noch immer nicht, dass es sich um ein Bild handeln soll das dort in der ASCII-Datei ausgespuckt wird.
    Man muss schon zuerst im Header den Mime-Typen der Datei definieren um dem Browser vor Senden der Daten zu sagen das es sich hier um ein Bild handelt.
    Nichtsdestotrotz kann man natürlcih dennoch alles mit einer Datei machen:

    PHP-Code:
    <?php
    // Hier drüber darf nichts an den Browser ausgegeben werden.
    if($what!="img"){
       echo
    "Hier das Bild: <img src=\"".$PHP_SELF."?what=img\">";
    }else{
      
    // Bildeinlesende Funktionen hier einfügen
      // Angenommen das Bild wird in der Variable $bild gespeichert
       
    header("Content-Type: image/jpg"); // Hier ggf. noch anpassen damit dynamisch der richtige Mimetyp ermittelt und eingesetzt wird.
       
    image($bild);
    }
    ?>
    Müsste eigentlich funzen.
    Bedenke nur das das da oben nur eine Anregung ist und noch viel daran geschraubt werden muss.

  9. #9
    PHP-Code:
    <?php
    // Hier drüber darf nichts an den Browser ausgegeben werden.
    if($what!="file"){
       echo
    "Hier das Bild: <img src=\"".$PHP_SELF."?what=file\">";
    }else{
      
    // Bildeinlesende Funktionen hier einfügen
      // Angenommen das Bild wird in der Variable $bild gespeichert
       
    header("Content-Type: image/jpg"); // Hier ggf. noch anpassen damit dynamisch der richtige Mimetyp ermittelt und eingesetzt wird.
       
    image($file);
    }
    ?> 

    <form action="image.php" enctype="multipart/form-data" method="post">
    <input type="file" name="img" size="33">
    <input type="submit" value="Hochladen">
    </form>
    Üääh! *flenn*

    Ich brauche nen Deppen, ähm... Freiwilligen der mir sonst Schrott bastelt >__>

    Also:
    1x
    upload.php [Uploadeskript welches in die 2te Datein über geht]
    image.php [Hier wird das doofe Bild angezeigt]

    Und die unterstützen Formate: JPG/PNG/GIF/BMP

    Oô So, bezahlung is... Fragt Daen ob er noch Jungfrauen hat >__>
    Falls ja short Euch eine bei ihm <__<

    Dennis

  10. #10
    Also:
    @Choci: Meine Idee hätte theoretisch schon funktioniert, da Browser alles, was im src-Attribut eines img-Tags steht automatisch als Bild interpretieren. Jedoch kann der Browser natürlich nicht auf beispielsweise CWindows\tmp3.php zugreifen, wo die hochgeladene Datei ja temporär gespeichert wird. Das Problem bei deinem Skript ist, dass die hochgeladene Datei nur in dem Skript verfügbar ist, dass direkt von dem Formular aufgerufen wurde. Wenn also vom Formular die Seite 'show.php' aufgerufen wird, welche dann einfach sich selbst im img-Tag ausgiebt, ist in der 2. Instanz von show.php nicht mehr die temporäre Speicherung des Bildes vorhanden.

    Und weil das jetzt keiner verstanden hat: Entweder musst du das Bild zwischenspeichern, oder du gibst nur das Bild ohne was drum herum aus. Das würde dann so aussehen:
    PHP-Code:
    <?php
    // Hier drüber darf nichts an den Browser ausgegeben werden.
    if($_POST['upload'] == 'Hochladen'){
       
    header('Content-Type: '.$_FILES['img']['mime']);
       echo 
    file_get_contents($_FILES['img']['tmp_name']);
    } else {
    ?>
    <form action="image.php" enctype="multipart/form-data" method="post">
    <input type="file" name="img" size="33">
    <input type="submit" name="upload" value="Hochladen">
    </form>
    <?php
    }
    ?>
    Damit ist dann allerdings noch nicht geprüft, ob das Bild auf tatsächlich ein Bild ist und den Anforderungen entspricht.

  11. #11
    Na gut, na gut >__>

    Machen wirs so:

    Zwischenspeichern (dauerhaft).

    Der Dateiname wird wie ausgegeben?
    Als Datum?

    Am besten währe das in etwa so: datum.uhrzeit.endung
    2005_01_09.16_00_35.png/gif/jpg/etc.

    Mir isses egal ob der User seine Pornosammlung hochlädt oder ob er ne TXT hochlädt, bei dem Ergebnis wird die URL in ne Variable geschrieben und wnen diese kein Bild enthältt kommt einfach ein garnichts (auser der alt text).

    Dennis
    PS: Was ich nun brauche:
    • Hochladeskript
    • Umbennennungskript
    • URL in Variable speichern- Skript


    Das müsste es gewesen sein.

  12. #12
    hat sich erledigt, nehme getöteten_orks seins

    Dennis

  13. #13
    Zitat Zitat von getöteter_ork
    Also:
    @Choci: Meine Idee hätte theoretisch schon funktioniert, da Browser alles, was im src-Attribut eines img-Tags steht automatisch als Bild interpretieren. Jedoch kann der Browser natürlich nicht auf beispielsweise CWindows\tmp3.php zugreifen, wo die hochgeladene Datei ja temporär gespeichert wird. Das Problem bei deinem Skript ist, dass die hochgeladene Datei nur in dem Skript verfügbar ist, dass direkt von dem Formular aufgerufen wurde. Wenn also vom Formular die Seite 'show.php' aufgerufen wird, welche dann einfach sich selbst im img-Tag ausgiebt, ist in der 2. Instanz von show.php nicht mehr die temporäre Speicherung des Bildes vorhanden. ...
    Jo, da sprichst du wahr.
    Ich hatte die ganze Zeit über immer nur eine lokale Datei im Kopf die ausgelesen und direkt wieder ausgegeben werden soll. Frag nicht wieso.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •