| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

05-01-2007, 15:30
|
|
Vankin
Newbie
|
|
Registriert seit: Dec 2003
Ort: capital B
Beiträge: 33
|
|
Fehler beim Bild upload automatisch verkleinern
Hallo Leute,
ich habe ein Problem mit dem Bildupload und dem automatischen verkleinern des Fotos.
Ich bin mir nicht sicher, ob der Fehler jetzt an meinem "Upload DIR" liegt, oder ob vorher schon ein Fehler auftritt!
Vielleicht kann mal einer drüberschauen und Hilfestellung leisten.
PHP-Code:
$groesse=getimagesize($_FILES['foto']['tmp_name']);
$breite=$groesse[0];
$hoehe=$groesse[1];
$neueBreite=200;
$neueHoehe=intval($hoehe*$neueBreite/$breite);
$altesBild=ImageCreateFromJPEG($_FILES['foto']['tmp_name']);
$neuesBild=ImageCreate($neueBreite,$neueHoehe);
ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
$uploaddir = 'D:\\xampp\\xampp\\htdocs\\site\\images\\';
move_uploaded_file($neuesBild,$uploaddir. "$new_name") or print_r($_FILES) AND die("upload fehlgeschlagen!");
chmod ($uploaddir."/".$new_name, 0777);
header("Location: verwaltung.php");
exit;
als Fehlermeldung wirft er mir das aus...
Array ( [foto] => Array ( [name] => Elpro-firmengruppe_FIN.jpg [type] => image/jpeg [tmp_name] => D:\xampp\xampp\tmp\php2A.tmp [error] => 0 [size] => 33703 ) ) upload fehlgeschlagen!
Danke fürs schauen!!!
lieben Gruß
|

05-01-2007, 15:38
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
die werte sind einwandfrei und der upload war erfolgreich. das problem ist deine programmierung:
PHP-Code:
move_uploaded_file($neuesBild,$uploaddir. "$new_name") or print_r($_FILES) AND die("upload fehlgeschlagen!");
AND wird auf jeden fall ausgeführt! mach es doch so
PHP-Code:
if (move_uploaded_file($neuesBild,$uploaddir. "$new_name"))
{
...
}
else
{
...
}
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

05-01-2007, 15:57
|
|
Vankin
Newbie
|
|
Registriert seit: Dec 2003
Ort: capital B
Beiträge: 33
|
|
AND die ist natürlich totaler blödsinn! Kann ja nicht funktionieren!!
Zitat:
Original geschrieben von Kropff
PHP-Code:
if (move_uploaded_file($neuesBild,$uploaddir. "$new_name"))
{
}
else
{
...
}
peter [/B]
|
Du meist es so?
PHP-Code:
if (move_uploaded_file($neuesBild,$uploaddir. "$new_name"))
{
chmod ($uploaddir."/".$new_name, 0777);
header("Location: verwaltung.php");
exit;
}
else
{
print_r($_FILES);
echo "Upload Fehlgeschlagen";
}
Funktioniert aber trotzdem nicht
|

05-01-2007, 16:08
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
|
|
was ergibt ein
PHP-Code:
error_reporting(E_ALL);
am beginn deines scriptes?
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

05-01-2007, 16:09
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Zitat:
|
Funktioniert aber trotzdem nicht
|
dass es hier niemand schafft eine fehlermeldung oder problembeschreibung zu formulieren... muss man immer erst nachfragen?
|

05-01-2007, 16:34
|
|
Vankin
Newbie
|
|
Registriert seit: Dec 2003
Ort: capital B
Beiträge: 33
|
|
Zitat:
Original geschrieben von TobiaZ
dass es hier niemand schafft eine fehlermeldung oder problembeschreibung zu formulieren... muss man immer erst nachfragen?
|
SORRY!!!
Ich werde mich jetzt bessern!
Also wenn ich an den Anfang meines Scriptes schreibe:
ini_set ('error_reporting', E_ALL);
dann wird mir folgende Fehlermeldung ausgegeben.
Array ( [foto] => Array ( [name] => start.jpg [type] => image/jpeg [tmp_name] => D:\xampp\xampp\tmp\php3E.tmp [error] => 0 [size] => 34194 ) )
und
Warning: chmod() [function.chmod]: No such file or directory in D:\xampp\xampp\htdocs\site\userpanel\bild_upload.php on line 71
Ich habe dass Script noch einmal auf einen anderen Server getestet! Da wird mir folgende Fehlermeldung noch ausgegeben.
Array ( [foto] => Array ( [name] => maerkte.jpg [type] => image/jpeg [tmp_name] => /var/www/web8/phptmp/phppywYpl [error] => 0 [size] => 70440 ) )
und
Warning: chmod(): Unable to access /var/www/web8/html/elpro/userpanel/img/1168011120.jpg in /var/www/web8/html/elpro/userpanel/bild_upload.php on line 71
die einzige Veränderung ist die, dass beim zweiten schon mal der neue Name auftaucht. Leider aber nicht das Bild im angegebenen Ordner!
Kann ich irgendwie überprüfen, was mit dem File passiert oder z.b. das neue verkleinerte Bild ausgeben?
Ich hoffe, das war etwas mehr verständlich.
|

05-01-2007, 16:36
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
poste mal bitte zeile 71 inklusive der Werte (Testausgaben) aller verwendeter Variablen?
No file/dir sollte ja eigentlich klar sein, was das Problem ist...
|

05-01-2007, 16:40
|
|
Vankin
Newbie
|
|
Registriert seit: Dec 2003
Ort: capital B
Beiträge: 33
|
|
Zitat:
Original geschrieben von TobiaZ
poste mal bitte zeile 71 inklusive der Werte (Testausgaben) aller verwendeter Variablen?
No file/dir sollte ja eigentlich klar sein, was das Problem ist...
|
Zeile 71:
chmod ($uploaddir.$new_name, 0777);
|

05-01-2007, 16:43
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
HUHU???
Zitat:
|
inklusive der Werte (Testausgaben) aller verwendeter Variablen?
|
Das sind in deinem Falle wohl
$uploaddir und $new_name
Und ja, Testausgaben macht man mit echo
Danke
|

05-01-2007, 16:48
|
|
Vankin
Newbie
|
|
Registriert seit: Dec 2003
Ort: capital B
Beiträge: 33
|
|
Zitat:
Original geschrieben von TobiaZ
poste mal bitte zeile 71 inklusive der Werte (Testausgaben) aller verwendeter Variablen?
|
Ich poste noch mal das kanze kleine Script:
EDIT: Nee, kannste steckenlassen.
wahsaga
Geändert von wahsaga (05-01-2007 um 16:55 Uhr)
|

05-01-2007, 16:51
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
und das interessiert mich einen feuchten ...
Wenn ihr nicht wisst, was testausgaben sind, dann fragt danach. aber ignoriert bitte nicht meine gezielten fragen, die euch auf das problem bringen sollen.
irgendwann müsst ihr doch auch mal lernen selbsständig zu debuggen? So ist Programmieren nunmal. Wer alles vorgekaut braucht, sollte es sein lassen.
Danke!
so, offensichtlich schlägt der befehl hier schon fehl.
PHP-Code:
move_uploaded_file($neuesBild,$uploaddir. "$new_name") or print_r($_FILES);
EDIT: Autsch, das ist ja total die falsche Funktion. lies bitte mal im Manual nach, wofür move_uploaded_file da ist. danach darfst du dann image_jpg() nachlesen.
Geändert von TobiaZ (05-01-2007 um 16:56 Uhr)
|

10-01-2007, 16:57
|
|
Vankin
Newbie
|
|
Registriert seit: Dec 2003
Ort: capital B
Beiträge: 33
|
|
Sorry für diesen ganzen HickHack.
Es ist jetzt schon etwas länger her, aber nach all diesen Qualen die ich euch bereitet habe, möchte ich zumindest mein Ergebnis posten. ZU erst will ich mal sagen das der Code funktionier. So wie ich es mir vorstelle.
Ich habe mir noch einmal die Referenz zu move_uploaded_file durchgelesen.
move_uploaded_file -- Verschiebt eine upgeloadete Datei an einen neuen Ort. Das muss ich als erstes machen, damit mein Temp File abgespeicher wird.
Imagejpeg()
Erzeugt eine neue Datei aus einem Bild. Ich hatte wohl falsche Parameter übergeben.
Hier mein Code – Ihr könnt Euch ja gerne darüber lustig machen ode rmir auch noch ein paar Tips zur Verbesserung geben.
Wie gesagt, Sorry für die Aufregung hier. Das nächste mal werde ich mehr denken und dann posten! SORRY
gruß
PHP-Code:
$neuesBild = $_FILES['foto']['tmp_name'];
$wann = date("U");
$new_name = $press_name."_".$wann.".jpg";
$uploaddir = '/var/www/web8/html/elpro/userpanel/img/';
move_uploaded_file($neuesBild,$uploaddir."$new_name") or print_r($_FILES);
chmod ($uploaddir.$new_name, 0777);
$groesse=getimagesize($uploaddir.$new_name);
$breite=$groesse[0];
$hoehe=$groesse[1];
$neueBreite=200;
$neueHoehe=intval($hoehe*$neueBreite/$breite);
$altesBild=ImageCreateFromJPEG($uploaddir.$new_name);
$neuesBild=ImageCreate($neueBreite,$neueHoehe); ImageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,$uploaddir.$new_name);
header("Location: verwaltung.php");
exit;
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|