
46356
04.11.2007, aktualisiert um 12:53:40 Uhr
Bilder Upload mit automatischer Größenanpassung funktioniert nicht
Guten Tag!
Ich habe hier ein PHP Script, der auch funktioniert, wenn ich die Datei genau angebe (bla.jpg). Dann wird diese Datei auf eine bestimmte Größe angepasst und in einem Ordner gespeichert.
Nun habe ich versucht ein Upload Formular dazu zu schreiben. Leider funkionierts dann nicht mehr!
Hier mein Code (Datei heißt upload3.php):
Was ist da falsch?
Und hat vielleicht noch jemand eine Idee, wieso schon vor dem Absenden der Datei eine Fehlermeldung kommt oder wie ich diese wegbekomme?
Danke und einen schönen Sonntag, Alexander Breuss
Ich habe hier ein PHP Script, der auch funktioniert, wenn ich die Datei genau angebe (bla.jpg). Dann wird diese Datei auf eine bestimmte Größe angepasst und in einem Ordner gespeichert.
Nun habe ich versucht ein Upload Formular dazu zu schreiben. Leider funkionierts dann nicht mehr!
Hier mein Code (Datei heißt upload3.php):
<form action="upload3.php" method="post" enctype="multipart/form-data">
<input type="file" name="datei"><br>
<input type="submit" value="Hochladen">
</form>
<?php
$Grafikdatei = $_POST['datei'];
$Bilddaten = getimagesize($Grafikdatei);
$OriginalBreite = $Bilddaten;
$OriginalHoehe = $Bilddaten[1];
$ThumbnailBreite = 123;
if($OriginalBreite < $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}
$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);
if($Bilddaten[2] == 1)
{
$Originalgrafik = ImageCreateFromGIF($Grafikdatei);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImageGIF($Thumbnailgrafik, "thumb_".$Grafikdatei);
}
elseif($Bilddaten[2] == 2)
{
$Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImageJPEG($Thumbnailgrafik, "thumb_".$Grafikdatei);
}
elseif($Bilddaten[2] == 3)
{
$Originalgrafik = ImageCreateFromPNG($Grafikdatei);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImagePNG($Thumbnailgrafik, "thumb_".$Grafikdatei);
}
echo"<img src=\"thumb_",
$Grafikdatei,
"\">";
?>
</form>
</body>
</html>
Was ist da falsch?
Und hat vielleicht noch jemand eine Idee, wieso schon vor dem Absenden der Datei eine Fehlermeldung kommt oder wie ich diese wegbekomme?
Warning: Division by zero in /usr/export/www/vhosts/funnetwork/hosting/browserfish/test/upload3.php on line 19
Warning: Division by zero in /usr/export/www/vhosts/funnetwork/hosting/browserfish/test/upload3.php on line 20
Danke und einen schönen Sonntag, Alexander Breuss
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 72665
Url: https://administrator.de/forum/bilder-upload-mit-automatischer-groessenanpassung-funktioniert-nicht-72665.html
Ausgedruckt am: 22.04.2025 um 05:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo Alex,
die Fehlermeldung beschreibt dein Problem doch schon. Zeile 19 und 20 können nicht geparst werden, weil eine Division mit 0 nicht möglich ist.
Zeile 19 und 20:
Einfach alle Variablen mit "Echo" mal ausgeben. Dann siehst du ja, welche es ist.
Grüße
Dani
die Fehlermeldung beschreibt dein Problem doch schon. Zeile 19 und 20 können nicht geparst werden, weil eine Division mit 0 nicht möglich ist.
Zeile 19 und 20:
$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);
Grüße
Dani
Tja....eigentlich solltest du das Wissen, wenn du PHP programmierst. Den Grund kannst du hier nachlesen.
Grüße
Dani
Grüße
Dani
Weil getimagesize doch erst die Daten auslesen kann wenn das Formular abgesendet wurde. Vorher existieren die Variablen nicht und es kommt zu den Fehler. Funktionsweise siehst du bei Danis Link.
EDIT: Bau ein isset($_POST['datei']) ein und packe alles hinter die Abfrage rein dann gibts keine Probleme mehr ;)
EDIT: Bau ein isset($_POST['datei']) ein und packe alles hinter die Abfrage rein dann gibts keine Probleme mehr ;)