Antworten auf deine Fragen:
Neues Thema erstellen

bild hochladen + verkleinern + anzeigen

xXxDemoxXx

"Spielkind" o.O

Hey Leute,

ich hab jetzt eine ganze Weile gegooglet aber verstehe irgendwie nur Bahnhof...

Also.
Ich würde gern ein Formular anbieten, in dem man ein Bild hochladen kann, dass auf die Breit von 150px verkleinert wird und nach dem Ändern dann zum Runterladen angezeigt wird.

Ich erwarte jetzt keine Komplettlösung, aber .. ich versteh das echt gar nicht :uhm: Ansonsten komm ich mit PHP eigendlich gut klar...

Ich hoffe, ihr könnt mir irgendwie helfen und erklären :)
 

Robbyn-

PHP / Flex Programmierer

AW: bild hochladen + verkleinern + anzeigen

Also am besten ein Formularfeld das wie folgt aussehen könnte.

PHP:
 <form action="index.php?seite=upload&mode=up" method="post" enctype="multipart/form-data"><table class="foren">
        <tr>
        	<td class="text"><b>{$datei}</b></td>
            <td><input name="datei" class="feld" type="file" /></td>
        </tr>
        <tr>
        	<td colspan="2" align="center"><input type="submit" name="senden" class="button" value="{$upload}" /></td>
        </tr>
    </table></form>

das wichtige an so einem Formular ist das im form tag das <i>enctype="multipart/form-data"</i> drin steht, denn ohne das kann man keine Daten hochladen.

Dann im PHP Code müsste sowas wie folgendes stehen.

PHP:
$tempname		=	$_FILES["datei"]["tmp_name"];
$name		=	$_FILES["datei"]["name"];
$size			=	$_FILES["datei"]["size"];
$type			=	$_FILES["datei"]["type"];
$tempname = Der Name wo die datei zwischengespeichert wurde
$name = Name der Datei des Bildes mit ende (z.b. .png, .jpg)
$size = Die Größe der Datei in Bytes
$type = der Typ der Datei ob es ein Bild ist oder was anderes

Am besten die Größe überprüfen und noch den Typ.

Wenn du den Typ überprüfen möchtest musst du mit werten wie z.b.

PHP:
image/jpeg

image/gif

image/png

image/tiff

das sind die standart bildtypen.

Wenn alle Überprüfungen stattgefunden kannst du das bild dann hochladen mit der funktion

PHP:
move_uploaded_file

dann noch ein Datenbank eintrag machen und die Bilder später auslesen lassen. Die größe der Bilder kannst du ja mit max-width auf 100px z.b. stellen und schon wars das.

MfG.Robbyn
 

xXxDemoxXx

"Spielkind" o.O

AW: bild hochladen + verkleinern + anzeigen

Also. Ich habe jetzt das Formular und bekomme das Bild hochgeladen.

Aber nicht verkleinert :motz:

Also bei mir sieht das nun so aus (Formular lass ich jetzt mal weg, das ist glaube ich selbsterklärend)

PHP:
<?php

//Daten einlesen + Bild hochladen

$nickname = $_POST['nickname'];
if(isset($_POST['senden']))
{
    if(!empty($nickname))
    {
    $dateityp = getimagesize($_FILES['datei']['tmp_name']);
    
    //INFOS UEBER DAS BILD
    $tempname        =    $_FILES["datei"]["tmp_name"];
    $name        =    $_FILES["datei"]["name"];
    $size            =    $_FILES["datei"]["size"];
    $type            =    $_FILES["datei"]["type"];
    
    $size = $size / 1024 / 1024;
    $size = substr($size, 0, 4);
    
    echo "Hier ein paar Infos &uuml;ber das von Dir hochgeladene Bild: <br>";
    echo "<b>Name:</b> ".$name."<br>";
    echo "<b>Gr&ouml;&szlig;e:</b> ".$size." MB<br>";
    echo "<b>Dateityp:</b> ".$type."<br>";
    
    
            if($dateityp[2] == 0)
            {
                echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen";
            }
            else
              {
              mkdir($nickname);
              move_uploaded_file($_FILES['datei']['tmp_name'], $nickname."/".$_FILES['datei']['name']);
              echo "Das Bild wurde Erfolgreich hochgeladen";
              }
Jetzt der Problemfall. Ich habs versucht nach den Beispielen im Internet zu machen, aber irgendwie funktioniert das nicht.

PHP:
    //Bildgroesse aendern...
    
    $image = imagecreatefromjpeg( $nickname."/".$name );
    $image1 = imagecreate(150, 150);
    $farbe_body = imagecolorallocate ( $image1, 225, 225, 225 );
    imagecopyresized ( $image1, $image, 0, 0, 50, 60, 150, 30, 91, 26 );
    imagejpeg ( $image1, '', 100 );
    }
    
}

?>
Wenn ich das dann alles ausführe kommt bei dem teil imagejpeg($image1, '', 100); dann nur jede Menge komische Zeichen :hmpf:
 

Robbyn-

PHP / Flex Programmierer

AW: bild hochladen + verkleinern + anzeigen

Wenn ich das dann alles ausführe kommt bei dem teil imagejpeg($image1, '', 100); dann nur jede Menge komische Zeichen

Das kann vorkommen wenn der Pfad zum Bild nicht korrekt ist. Jedenfalls war das bei mir mal der Fall, als dann der Bildpfad korrekt war, ging es ohne Probleme.

Oder aber es liegt am Bild selbst wenn das Format nicht stimmt.

PHP:
imagejpeg ( $image1, '', 100 );

das sagt ja das das Bild immer ein .jpeg sein muss, deshalb wäre eine Überprüfung nicht schlecht um herrauszufinden was für ein Bildtyp es ist.

MfG.Robbyn
 
Zuletzt bearbeitet:

xXxDemoxXx

"Spielkind" o.O

AW: bild hochladen + verkleinern + anzeigen

Mhm.. das scheint es irgendwie nicht zu sein... Google sagt, dass es mit "header('Content-type: image/jpeg');" zu tun hat, aber ich weiß nicht wohin damit, weil er mir immer sagt
"Warning: Cannot modify header information - headers already sent[....]
Und dann soll ich das nicht über imagejpeg() ausgeben sondern als html <img> code.....

kompliziert -.- ich schlaf mal eine Nacht drüber... wenn du / ihr eine Lösung habt, immer her damit :D
 

mckbrother

Webdesigner/Programmierer

AW: bild hochladen + verkleinern + anzeigen

Also deine Fehlermeldung kommt warscheinlich daher, das Du vor dem header(); Befehl schon eine Ausgabe machst. Selbst ein Leerzeichen vor dem <?php genügt, damit der Fehler kommt.
Denke IMMER an die Reihenfolge, in der das Script abgearbeitet wird:

Der Browser(Client) schickt eine Anfragen an den Server. Der Server sieht: "aha es ist PHP" und schickt es an PHP. PHP beeinflusst gegebenenfalls die header. Da ist der Knackpunkt:
Die Header sagen, wie der Browser mit den Daten umgehen soll, die der Browser danach empfängt. Und es ist glaube ich logisch, das Du dem Browser nicht 150 Zeilen Code hinknallen kannst und ihm dann erst sagen kannst, was er damit machen soll.

Also Fazit:
header(); und session_start(); (Da gibt es die selben Probleme) MÜSSEN immer VOR einer Textausgabe stehen
Gruß,
Mckbrother ;)
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben