Statistik |
Beiträge: 144.534 (Täglich: 19,19 )
Themen: 16.701
Mitglieder: 13.209
Neuestes Mitglied: zitronentee.
Ausl. d. letzten Minute: 420%
Ausl. d. letzten 5 Minuten: 370%
Ausl. d. letzten 15 Minuten: 321%
Aktulle Uhrzeit: 15:15
Freier Webspace: 4.03 TB
PHP-Version: 7.4.33
|
|
|
|
|
Bildupload Thumbs erstellen |
|
Bildupload Thumbs erstellen |
|
Nabend,
ich habe hier ein Bildupload script was auch funktioniert usw jedoch weiss ich grade nicht sorecht wie ich nun dabei einen Thumb erstellen kann also das er das Bild hochlaed und sogleich ein Thumb bild erstellt ich denke bzw hoffe ihr wisst wie ich es mein.
das waere das formular bzw die bildauswahl
edit.php
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
<form action="index.php?save" method="POST" name="speichern" enctype="multipart/form-data">
<table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td align="right" rowspan="9"><input type="file" name="new_bild"><br>Nur .jpg Bilder erlaubt.</td>
</tr>
</table>
</form>
|
|
Das waere die datei wo er hochlaed
save.php
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
|
$grafikdatei = $_FILES['new_bild']['tmp_name'];
$Bilddaten = getimagesize($Grafikdatei);
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
$OriginalType = $_FILES['new_bild']['type'];
$OriginalGroesse = $_FILES['new_bild']['size'];
$Max_Bild_Groesse = "1048576";
if($OriginalGroesse>$Max_Bild_Groesse) {
echo 'Dein Bild ist zu groß.<br> Bitte versuch es erneut mit einer max. Größe von 1 MB';
}elseif($OriginalType!="image/jpeg" && $OriginalType!="image/jpg"){
echo 'Dein Bild hat nicht das erlaubte Format. (.jpg oder .jpeg)';
}else{
//Ordner für die Bilder
$picdir ='images/gallery/';
//Neuer Name für die Bilder
$newname = time();
settype($newname, "string");
$newname = $newname.'.jpg';
//Neuer Pfad+Bildname
$new_path = $picdir.$newname;
// Username holen
$username=$_SESSION['username'];
// altes Bild erst löschen
$filename_SQL="SELECT bild FROM gallery WHERE account='$username'";
$filename_result=mysql_query($filename_SQL);
$filename=mysql_fetch_array($filename_result);
$delete_file=$filename['gildenlogo'];
$delete_bild=$picdir.$delete_file;
unlink($delete_bild);
//Originalbild verschieben
move_uploaded_file($_FILES['new_bild']['tmp_name'],$new_path);
|
|
Hoffe es kann mir da wer weiterhelfen.
Gruss
|
|
20.03.2010 22:45 |
|
|
|
Danke fuer die Antwort Viktor
jedoch weiss ich damit nicht so recht was anzufangen.
kla habe ich schon ein wenig gegoogelt und getestet aber irgendwie hat nix funktioniert oder ich habe es einfach falsch eingesetzt.
http://www.webmasterpro.de/coding/articl...en-mit-php.html
kann man da irgendwie was mit machen? es schaut gut aus aber versteh es nicht so recht einzusetzen in mein Code.
Gruss
|
|
20.03.2010 23:15 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.781.249
Nächster Level: 266.777.854
|
|
|
20.03.2010 23:26 |
|
|
|
hm ich bekomms damit nicht hin
irgendwie uebernimmt er da nix
koenntes du mir da nicht weiter helfen beim code umschreiben bzw einsetzten.
Gruss
|
|
21.03.2010 01:16 |
|
|
|
Nabend,
Naja da es in gebrauch ist habe ich es rueckgaenig gemacht damit die Leute halt so ohne verkleinerung das Bild hochladen koennne usw.
aber ich hatte halt das hinzugefuegt
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
|
// Maximalausmaße
$maxthumbwidth = 150;
$maxthumbheight = 100;
// Ausmaße kopieren, wir gehen zuerst davon aus, dass das Bild schon Thumbnailgröße hat
$thumbwidth = $imagewidth;
$thumbheight = $imageheight;
// Breite skalieren falls nötig
if ($thumbwidth > $maxthumbwidth)
{
$factor = $maxthumbwidth / $thumbwidth;
$thumbwidth *= $factor;
$thumbheight *= $factor;
}
// Höhe skalieren, falls nötig
if ($thumbheight > $maxthumbheight)
{
$factor = $maxthumbheight / $thumbheight;
$thumbwidth *= $factor;
$thumbheight *= $factor;
}
// Thumbnail erstellen
$thumb = imagecreatetruecolor($thumbwidth, $thumbheight);
|
|
und $imagewidth = $OriginalBreite und $imageheight = $OriginalHoehe ausgetauscht weill ich es ja meins anpassen muss
dann habe den anderen code
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
imagecopyresampled(
$thumb,
$image,
0, 0, 0, 0, // Startposition des Ausschnittes
$thumbwidth, $thumbheight,
$imagewidth, $imageheight
);
|
|
noch drunter geschrieben aber da komm ich auch nicht weiter und wie ich es abaender mit einen pfad angeben also wohin der thumb gespeichert werden soll
ich mag zwar ein wenig ahnung haben aber soviel dann doch nicht und fuer euch ist es doch sichherlich einfacher
Danke und Gruss
|
|
21.03.2010 20:15 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.781.249
Nächster Level: 266.777.854
|
|
Hallo,
in deinem Code vermisste ich das hier:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
|
$imagefile = 'foo.bar';
$imagesize = getimagesize($imagefile);
$imagewidth = $imagesize[0];
$imageheight = $imagesize[1];
$imagetype = $imagesize[2];
switch ($imagetype)
{
// Bedeutung von $imagetype:
// 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM
case 1: // GIF
$image = imagecreatefromgif($imagefile);
break;
case 2: // JPEG
$image = imagecreatefromjpeg($imagefile);
break;
case 3: // PNG
$image = imagecreatefrompng($imagefile);
break;
default:
die('Unsupported imageformat');
}
|
|
Das ist wichtig da die Grafik erst in den Arbeitsspeicher geladen werden muss um sie dann weiter zu bearbeiten.
Gruß
Viktor
__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.
... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!
Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.
|
|
21.03.2010 20:43 |
|
|
|
hm das hab ich doch schon in mein normalen upload script vorhanden.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
$grafikdatei = $_FILES['new_bild']['tmp_name'];
$Bilddaten = getimagesize($Grafikdatei);
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
$OriginalType = $_FILES['new_bild']['type'];
$OriginalGroesse = $_FILES['new_bild']['size'];
$Max_Bild_Groesse = "1048576";
|
|
usw.
|
|
21.03.2010 20:52 |
|
|
|
naja hab es nun mal hinzugefuegt und er gibt mir nur ein mist aus den ich aber nicht posten kann weil er die zeichen nicht alle uebernimmt.
kannst du es nicht richtig komplett in mein script code den ich oben eingefuegt habe einfuegen?
damit ich das mal teste du hast sicherlich mehr Ahnung
|
|
21.03.2010 21:04 |
|
|
Viktor
Administrator
Zeige Viktor auf Karte
Dabei seit: 15.08.2003
Beiträge: 31.570
363 Filebase-Einträge
Alter: 66 Jahre
Herkunft: NRW wBB-Version: wBB2.3 PHP-Version: 7.4.33 MySQL-Version: 10.5.19-MariaDB Wo bist du gehostet?: eigener Server
Bewertung:
Level: 71 [?]
Erfahrungspunkte: 237.781.249
Nächster Level: 266.777.854
|
|
Hallo,
du kannst es so mal versuchen.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
|
$grafikdatei = $_FILES['new_bild']['tmp_name'];
$Bilddaten = getimagesize($Grafikdatei);
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
$OriginalType = $_FILES['new_bild']['type'];
$OriginalGroesse = $_FILES['new_bild']['size'];
$Max_Bild_Groesse = "1048576";
if($OriginalGroesse>$Max_Bild_Groesse) {
echo 'Dein Bild ist zu groß.<br> Bitte versuch es erneut mit einer max. Größe von 1 MB';
}elseif($OriginalType!="image/jpeg" && $OriginalType!="image/jpg"){
echo 'Dein Bild hat nicht das erlaubte Format. (.jpg oder .jpeg)';
}else{
//Ordner für die Bilder
$picdir ='images/gallery/';
//Neuer Name für die Bilder
$newname = time();
settype($newname, "string");
$newname = $newname.'.jpg';
//Neuer Pfad+Bildname
$new_path = $picdir.$newname;
// Username holen
$username=$_SESSION['username'];
// altes Bild erst löschen
$filename_SQL="SELECT bild FROM gallery WHERE account='$username'";
$filename_result=mysql_query($filename_SQL);
$filename=mysql_fetch_array($filename_result);
$delete_file=$filename['gildenlogo'];
$delete_bild=$picdir.$delete_file;
unlink($delete_bild);
//Originalbild verschieben
move_uploaded_file($_FILES['new_bild']['tmp_name'],$new_path);
/* Thumbnail erstellen */
$imagefile = $new_path;
$imagesize = getimagesize($imagefile);
$imagewidth = $imagesize[0];
$imageheight = $imagesize[1];
$imagetype = $imagesize[2];
switch ($imagetype) {
case 1: // GIF
$image = imagecreatefromgif($imagefile);
break;
case 2: // JPEG
$image = imagecreatefromjpeg($imagefile);
break;
case 3: // PNG
$image = imagecreatefrompng($imagefile);
break;
default:
die('Unsupported imageformat');
}
// Maximalausmaße
$maxthumbwidth = 150;
$maxthumbheight = 100;
$width = @imagesx($image);
$height = @imagesy($image);
// Ausmaße kopieren, wir gehen zuerst davon aus, dass das Bild schon Thumbnailgröße hat
$thumbwidth = $imagewidth;
$thumbheight = $imageheight;
// Breite skalieren falls nötig
if ($thumbwidth > $maxthumbwidth) {
$factor = $maxthumbwidth / $thumbwidth;
$thumbwidth *= $factor;
$thumbheight *= $factor;
}
// Höhe skalieren, falls nötig
if ($thumbheight > $maxthumbheight) {
$factor = $maxthumbheight / $thumbheight;
$thumbwidth *= $factor;
$thumbheight *= $factor;
}
// Thumbnail erstellen
$newim = @ImageCreateTrueColor($thumbwidth, $thumbheight);
@ImageCopyresampled($newim, $image, 0, 0, 0, 0, $thumbwidth, $thumbheight, $width, $height);
ob_start();
if($imagetype=="1") {@imagegif ($newim);}
if($imagetype=="2") {@imagejpeg ($newim);}
if($imagetype=="3") {@imagepng ($newim);}
@imagedestroy($newim);
$image = ob_get_contents();
ob_end_clean();
$picthumb ='images/gallery/th-'.$newname;
$fp = fopen($picthumb, 'wb');
fwrite($fp, $image);
fclose($fp);
@chmod ($picthumb, 0777);
|
|
Gruß
Viktor
__________________
Ein kluger Mann widerspricht keiner Frau. Er wartet, bis sie es selbst tut.
... beim Käfer (WBB2) konnte man noch selber schrauben,
beim neuen Golf (WBB3) muß man fast schon in die Werkstatt wenn man das "Wischwasser" nachfüllen muss!
Da fast keiner mehr hier Postet gibt es ab sofort keinen Support mehr per PN.
|
|
21.03.2010 21:32 |
|
|
|
Ja das scheint zu gehn
Danke erstmal
|
|
21.03.2010 22:26 |
|
|
|
Scheint soweit ich nun alles getestet habe zu gehn
was muss ich jedoch machen wenn kein bild vorhanden ist? und man eins hochlaedt damit er mir nicht anzeigt unlink error was er natuerlich anzeigt da ja kein bild vorhanden ist aber kann man das anders loesen?
|
|
22.03.2010 16:32 |
|
|
|
habs hinbekommen
|
|
22.03.2010 19:04 |
|
|
|
Sagmal koenntes du mir vllt nochmal bei einer kleinigkeit helfen die auch was damit zutun hat.
Also habe ja ein forumlar und lass es an eine andere datei weiter leiten also edit.php und save.php
was muss man den in der save.php schreiben wenn man was bei der edit.php aendern will aber kein neues bild hochladen will
Also du willst den namen und nachnamen auf der homepage aendern aber nicht das bild.
gehs also zu der edit.php schreibst name und nachname aber bei file kein neues bild.
hoffe du weisst wie ich es mein
den er zeigt dann bei mir immer an Bild entspricht nicht das gewuenschte formart aber will ja garkein neues bild hochladen sondern er soll das alte uebernehm bzw da nix aendern.
Gruss
|
|
22.03.2010 20:41 |
|
|
|
Ich mein ich haette das schonmal gehabt und es ging nicht
Aber nun kla geht es
Danke
|
|
22.03.2010 21:01 |
|
|
|
|
|
|