Archiv verlassen und diese Seite im Standarddesign anzeigen : "uploadeskript" welches auf funpic.de gehen sollte
Maisaffe
08.01.2005, 16:02
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
Kermit.d
08.01.2005, 16:07
Vielleicht hilft dir das?
http://forum.worldofplayers.de/forum/showthread.php?t=50132
edit:
oder meinst du, dass du das Bild dann darstellen kannst? In dem Fall müsstest du die Date einlesen:
<?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
header("Content-Type: image/jpg");
echo base64_decode($bild_var);
?>
dead_orc
08.01.2005, 16:12
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
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!
Maisaffe
08.01.2005, 16:42
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
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
dead_orc
08.01.2005, 16:45
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".
Maisaffe
08.01.2005, 17:24
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
dead_orc
08.01.2005, 17:32
Schon, aber du kannst z.B. nicht das so aufbauen:
<?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
echo 'Das Bild, das du hochgeladen hast:<br /><img src="'.$_FILES['img']['tmp_name'].'" />';
?>
Dann brauchst du den ganzen anderen Mist nicht §doof
Chocwise
08.01.2005, 18:09
...
Ich muss mich allerdings für mein Missverständnis entschuldigen, weil mir fällt gerade ein, dass es so gehen müsste:
<?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
// 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.
Maisaffe
08.01.2005, 20:44
<?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
dead_orc
09.01.2005, 09:04
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 C:\Windows\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
// 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.
Maisaffe
09.01.2005, 15:03
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.
Maisaffe
09.01.2005, 17:05
hat sich erledigt, nehme getöteten_orks seins ;)
Dennis
Chocwise
09.01.2005, 17:14
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 C:\Windows\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. :D
Ich hatte die ganze Zeit über immer nur eine lokale Datei im Kopf die ausgelesen und direkt wieder ausgegeben werden soll. Frag nicht wieso. ;)
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.