Willkommen auf dem Portal für Mediengestalter
|
|
Autor |
Nachricht |
chrigi78
Threadersteller
Dabei seit: 10.10.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 22.02.2008 15:52
Titel PHP – Bild beim Upload skalieren |
|
|
Hallo
Ich habe hier ein kleines PHP-Skript, mit dem ich ein Bild uploaden und den Pfad in eine SQL-Datenbank speichern kann. Nun möchtet ich das Bild aber nicht 1:1 uploaden, sondern direkt beim Uploaden die Grösse auf z.B. 500px Breite verkleinern. Wie geht das? Was muss ich wo hinzufügen?
Vielen Dank & gutes Wochenende
Code: | <?php
//This is the directory where images will be saved
$target = "uploads/";
$target = $target . basename( $_FILES['photo']['name']);
//This gets all the other information from the form
$name=$_POST['name'];
$email=$_POST['email'];
$phone=$_POST['phone'];
$pic=($_FILES['photo']['name']);
// Connects to your Database
mysql_connect("localhost", "root", "root") or die(mysql_error()) ;
mysql_select_db("raumart") or die(mysql_error()) ;
//Writes the information to the database
mysql_query("INSERT INTO `fundgrube` VALUES ('', '$name', '$email', '$phone', '$pic')") ;
//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{
//Tells you if its all ok
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
}
else {
//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?> |
[edit by Nimroy]
Bitte [code]-Tags verwenden.
Zuletzt bearbeitet von Nimroy am Fr 22.02.2008 16:27, insgesamt 1-mal bearbeitet
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Fr 22.02.2008 16:14
Titel
|
|
|
hab hier ne kleine funktion allerdings nur für jpegs.
die musst du nur noch nachm "//Tells you if its all ok" einbinden
Code: |
function createThumb($img_src) {
$img_pixel = 500;
$im = imagecreatefromjpeg($img_src);
list($src_width, $src_height) = getimagesize($img_src);
$new_image_height = $img_pixel;
$new_image_width = $src_width * $img_pixel / $src_height;
$new_image = imagecreatetruecolor($new_image_width, $new_image_height);
imagecopyresized($new_image, $im, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
if (imagejpeg($new_image, "uploads/500copy_" .basename($img_src), 90))
{
echo "Thumbnail: uploads/500copy_".basename($img_src)." erfolgreich erstellt...<br />";
}
}
|
|
|
|
|
|
Anzeige
|
|
|
chrigi78
Threadersteller
Dabei seit: 10.10.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 22.02.2008 16:34
Titel
|
|
|
Merci schon mal für die Antwort, hat leider nicht geklappt.
Ich habe die Funktion zwischen die Zeilen "//Tells you.." und "echo "The file "..." eingebunden.
Muss ich noch etwas an der Funktion umschreiben oder anpassen? Habe übrigens ein jpg genommen.
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Fr 22.02.2008 16:46
Titel
|
|
|
du musst nicht die funktion dort einbinden, sondern deren aufruf
also funktion an den anfang des scriptes, und zwischen tells you dann den auruf.
ach...
Code: |
<?php
function createThumb($img_src) {
$img_pixel = 500;
$im = imagecreatefromjpeg($img_src);
list($src_width, $src_height) = getimagesize($img_src);
$new_image_height = $img_pixel;
$new_image_width = $src_width * $img_pixel / $src_height;
$new_image = imagecreatetruecolor($new_image_width, $new_image_height);
imagecopyresized($new_image, $im, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
if (imagejpeg($new_image, "uploads/500copy_" .basename($img_src), 90))
{
echo "Thumbnail: uploads/500copy_".basename($img_src)." erfolgreich erstellt...<br />";
}
}
//This is the directory where images will be saved
$target = "uploads/";
$target = $target . basename( $_FILES['photo']['name']);
//This gets all the other information from the form
$name=$_POST['name'];
$email=$_POST['email'];
$phone=$_POST['phone'];
$pic=($_FILES['photo']['name']);
// Connects to your Database
mysql_connect("localhost", "root", "root") or die(mysql_error()) ;
mysql_select_db("raumart") or die(mysql_error()) ;
//Writes the information to the database
mysql_query("INSERT INTO `fundgrube` VALUES ('', '$name', '$email', '$phone', '$pic')") ;
//Writes the photo to the server
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target))
{
//Tells you if its all ok
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory";
createThumb($target);
}
else {
//Gives and error if its not
echo "Sorry, there was a problem uploading your file.";
}
?>
|
|
|
|
|
|
Pixelpole
Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht:
|
Verfasst Fr 22.02.2008 16:53
Titel
|
|
|
hier haste ne kleine klasse zum resizen. Beispielimplementierung steht drunter. Das ding macht auch gif und png
klick
Ich gebe zu das ding hätte ich besser schreiben können...aber für seine zwecke dürfte es reichen und mich hat es nie im stich gelassen. von daher...
|
|
|
|
|
chrigi78
Threadersteller
Dabei seit: 10.10.2006
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 22.02.2008 16:54
Titel
|
|
|
An pixelpapst: Ich mache mich selbst nur ungern zum Narren... das Ding funktioniert immer noch nicht.
Diesmal habe ich das alte Script einfach mit dem neuen ersetzt.
An pixelpole: Versuche ich gleich
Zuletzt bearbeitet von chrigi78 am Fr 22.02.2008 16:55, insgesamt 1-mal bearbeitet
|
|
|
|
|
Pixelpole
Dabei seit: 25.10.2004
Ort: Trier
Alter: 37
Geschlecht:
|
Verfasst Fr 22.02.2008 17:03
Titel
|
|
|
ganz vergessen. du brauchst noch ne ini datei mit diesem inhalt für die fehlermeldungen:
Code: |
;;;;;;;;;;;;;;;;;;
;;ERROR_MESSAGES;;
;;;;;;;;;;;;;;;;;;
[image_resizer]
1 = die angegebene Datei existiert nicht
2 = der Dateityp wird nicht unterstützt
3 = Diese Datei ist keine gültige Bilddatei
4 = Die Datei ist zu groß
|
Den Pfad dazu findest du in der variable $error_ini
den müsstest du natürlich noch anpassen.
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Fr 22.02.2008 17:03
Titel
|
|
|
feine klasse...
musst aber noch die errors.ini rauswühlen
Zitat: |
das Ding funktioniert immer noch nicht.
|
... das ist keine fehlermeldung
edit: zu langsam (errors.ini)
Zuletzt bearbeitet von pixelpapst303 am Fr 22.02.2008 17:04, insgesamt 1-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
Blog Script mit Bild upload
phpMyAdmin Datenbank --> Bild-upload
pdf dokument mit bild upload funktion erstellen?
PHP Upload-Forumlar - lädt Bild nicht hoch
Photoshop: Bild skalieren?
[flash] hintergrund bild/mc skalieren
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|