CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
29.01.2006, 14:20:08
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 15
|
|
Bilderupload mit Verkleinerung.. nur jpg.. einige datein funktionien, andere nicht
hallo..
ich habe folgenden scripts geschrieben.. . sind nur zu testzwecken.. also nicht über stil und unnütze anzeigen usw. wundern..
erstmal das form.. auf der ersten seite
PHP-Code:
<form enctype="multipart/form-data" action="upload2.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="2097152">
Datei: <br>
<input name="userfile" type="file"><br><br>
<input type="submit" value="Send File">
</form>
und dann die nachfolgende seite..
PHP-Code:
<?php
echo "<pre>";
print_r($_FILES);
echo "</pre>";
$uploaddir = '../media';
echo "<br><br>".$_FILES['userfile']['tmp_name']."<br>";
echo "<img src=\"".$_FILES['userfile']['tmp_name']."\"><br><br>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir ."/". $_FILES['userfile']['name']))
{ print "File is valid, and was successfully uploaded. Here's some more debugging info:\n"; }
else { print "Possible file upload attack! Here's some debugging info:\n"; }
$image = $uploaddir."/".$_FILES['userfile']['name'];
echo "<br><br>".$image."<br>";
echo "<img width=\"100\" src=\"".$image."\"><br><br>";
$info = getimagesize($image);
echo "<pre>";
print_r($info);
echo "/<pre>";
echo "Bildbreite: " . $info[0];
$orginalbreite = $info[0];
echo "<br>";
echo "Bildhöhe: " . $info[1];
$orginalhoehe = $info[1];
echo "<br>";
echo "Grafik-Typ: " . $info[2];
echo "<br>";
echo "HTML-Zeichenkette: " . $info[3] . "<br><br><hr><br><br>";
$neuebreite = "300";
if($orginalbreite > $neuebreite)
{
$verhaeltnis = $orginalbreite / $orginalhoehe;
$neuehoehe = round($neuebreite / $verhaeltnis);
echo $neuebreite."<br>";
echo $neuehoehe."<br>";
}
if($orginalbreite <= $neuebreite)
{
$neuebreite = $orginalbreite;
$neuehoehe = $orginalhoehe;
echo $neuebreite."<br>";
echo $neuehoehe."<br>";
}
if($info[mime] == "image/jpeg")
{
$bilda = imagecreatefromjpeg("$image");
$bildn = imagecreatetruecolor($neuebreite, $neuehoehe);
imagecopyresized($bildn,$bilda,0,0,0,0,$neuebreite,$neuehoehe,$orginalbreite,$orginalhoehe);
imagejpeg($bildn,$image,100);
echo "<img src=\"".$image."\"><br><br>";
}
else
echo "..hat nicht geklappt..";
?>
mein Problem ist nun, das die meisten jpegs gehen.. manche aber nicht.. und ich weiß nicht warum, und schon garnicht wie ich das problem umgehen kann..
hier sind mal 2 testdatein.
http://www.schnappschiss25.de.vu/pri...geht nicht.jpg
http://www.schnappschiss25.de.vu/privat/nova - geht.jpg
hab die, die geht nur in nem fotoprog geöffnet und neu gespeichert.. nicht mehr..
hat jemand ne ahnung an was es liegt??.. und wie ichs hinbekomme...
Fehlermeldung gibts nicht wirklich.. also wenn man auf den submit der ersten seite drückt kommt ein windowsfehler ton und der browser hängt.. hab PHP 5.1.1 mit GD 2.0.2.8
danke schon mal
|
29.01.2006, 14:30:14
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Bilderupload mit Verkleinerung.. nur jpg.. einige datein funktionien, andere nich
Zitat:
Zitat von DragonofSilence
mein Problem ist nun, das die meisten jpegs gehen.. manche aber nicht..
|
Wie macht sich das bemerkbar?
|
29.01.2006, 14:41:57
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 15
|
|
AW: Bilderupload mit Verkleinerung.. nur jpg.. einige datein funktionien, andere nich
naja ich will usern die möglichkeit geben n paar bildchen hochzuladen.. aber wenn sich bei einigen bildern der browser aufhängt ist das scheiße.. wenn ich übrigens die verkleinerung rauslassen wird die datei richtig auf den server kopiert..
|
29.01.2006, 14:58:28
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Bilderupload mit Verkleinerung.. nur jpg.. einige datein funktionien, andere nich
Wenn sich der Browser beim Upload aufhängt, ist das aber wohl eher ein Problem des Browser als deines Scriptes.
|
29.01.2006, 15:03:41
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 15
|
|
AW: Bilderupload mit Verkleinerung.. nur jpg.. einige datein funktionien, andere nich
das macht sowohl IE als auch FireFox.. ich denk daran liegts nicht.. weil die meinsten dateien funktionieren ja..
|
29.01.2006, 18:30:20
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 15
|
|
AW: Bilderupload mit Verkleinerung.. nur jpg.. einige datein funktionien, andere nich
okay.. ich das nochmal ordentlich überarbeitet, das problem zwar nicht behoben, aber ich hab noch andere Fragen. Hier erstmal der Quelltext
PHP-Code:
<?php
include ("include-sessionkontrolle.php");
//Konfiguration für JPEG-Upload
$uploaddir = "../media"; //Zielverzeichnis (Schreibzugriff muss gegeben sein)
$gewuenschtebreite = "300"; //Bildgröße (Auflösung) wird auf diese Breite reduziert
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<title><?php echo $title; ?></title>
</head>
<body>
<table cellspacing="0" cellpadding="0" width="100%" height="100%" border="0" align="center" class="normal">
<tr>
<td>
<table cellspacing="0" cellpadding="0" width="550" align="center" class="normal; mpnull">
<tr>
<td width="550" align="center">
<?php
//Überprüfung des Dateityps
$type = $_FILES['userfile']['type']; //Auslesen des Typs
$type = strtolower($type); // Kleinschreiben
if (preg_match('/^image/',$type) and preg_match('/jpeg/',$type)) // Überprüfung auf Übereinstimmung des Typs mit dem gewünschten Dateiformat
{
$type = "true";
}
else
{
$meldung = "Fehler: <b>".$_FILES['userfile']['name']."</b> ist keine Bild im jpeg-Format";
}
//Übertragen von temp ins Zielverzeichnis
if($type == "true")
{ //Überprüfen ob Datei hochgeladen und aus dem Temporären Speicher ins Zielverzeichnis kopiert wurde
if (!move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir ."/". $_FILES['userfile']['name']))
{
$meldung = "Fehler beim übertragen der Datei";
}
//Ändern der Auflösung des Bildes
$image = $uploaddir."/".$_FILES['userfile']['name']; //Pfad zur Datei im Zielverzeichnis
$info = getimagesize($image); //Auslesen der Auflösung des Bildes und berechnung der zukünftigen Maße
$orginalbreite = $info['0'];
$orginalhoehe = $info['1'];
$neuebreite = $gewuenschtebreite;
if($orginalbreite > $neuebreite) //wenn Bild gößer als Gewunscht wird verkleinert
{ //wenn Bild kleiner oder gewünschte größe, bleibt Datei unverändert
$verhaeltnis = $orginalbreite / $orginalhoehe;
$neuehoehe = round($neuebreite / $verhaeltnis);
$bilda = imagecreatefromjpeg($image);
if(!$bildn)
{ //Speichern mit neuer Auflösung
$bildn = imagecreatetruecolor($neuebreite, $neuehoehe);
imagecopyresized($bildn,$bilda,0,0,0,0,$neuebreite,$neuehoehe,$orginalbreite,$orginalhoehe);
imagejpeg($bildn,$image,100);
}
else
{
$meldung = "Fehler beim bearbeiten des Bildes: <b>".$_FILES['userfile']['name']."</b>";
}
$meldung = "Das Bild: <b>".$_FILES['userfile']['name']."</b> wurde auf ".$neuebreite."x".$neuehoehe." verkleinert und gespeichert";
$anzeige = "true";
}
else
{
$meldung = "Das Bild: <b>".$_FILES['userfile']['name']."</b> wurde bei unveränderter Größe gespeichert";
$anzeige = "true";
}
}
//Ausgabe an den User
echo "..".$meldung."..";
if($anzeige == "true")
{
echo "<br><br><img src=\"".$image."\">";
}
?>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
kann es sein, das ich die temporären dateien löschen?.
ist die Zieldatei vom server noch geöffnet, weil ich sie nicht löschen kann?.
|
29.01.2006, 21:01:35
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Bilderupload mit Verkleinerung.. nur jpg.. einige datein funktionien, andere nich
Zitat:
Zitat von DragonofSilence
kann es sein, das ich die temporären dateien löschen?.
ist die Zieldatei vom server noch geöffnet, weil ich sie nicht löschen kann?.
|
move_uploaded_file() verschiebt die Datei. Was willst du da noch großartig löschen?
|
30.01.2006, 13:48:10
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 15
|
|
AW: Bilderupload mit Verkleinerung.. nur jpg.. einige datein funktionien, andere nich
ja gut.. schon richtig mit dem move()...
ich hab aber ein problem mit den daten die dann auf dem server sind.. ich kann die nicht direkt runterkopieren.. also per IE kann man ja mit ftp://user:passwort@host ein extplorerfenster zum Server öffnen. alle Datein die ich aber upgeloaded haben kann ich nicht auf die windows-typische art kopieren.. gibt immer n fehler: "Es ist ein Fehler beim kopieren der Datei aufgtreten." .. scheinbar ist die datei auch nur über http zu öffnen.. alles per ftp geht überhaupt nicht.. warum?..
ach ja und dann habe ich noch ein weiteres Problem, da man ja den user bei einer großen anzahl von bildern nicht jede Datei einzeln hochladen lassen will, such ich noch nach ner möglich das etwas angenehmer zumachen. hab erst gesucht ob ich per <input type="file"> irgendwie die urls in ein array eingeben kann, und dann die daten des arrys in ner while schleife hochladen lasse... das wäre recht gut, da man ja da leicht ne statusanzeige basteln kann.. aber so wies aussieht lässt sich das wohl nicht umsetzten, oder??.. (schon aus sicherheitsgründen denke ich mal).. obwohl wenn man mit copy nen lokalen file (file://D:/ usw. ) auch uploaden kann.. ich denk aber mal wenn dann nur per ftp.. . .naja falls da jemand ne idee hat, wäre ich echt dankbar..
achja und zu mienem jpeg problem.. wenn ich das auf dem server im internet habe kommt ne fehler meldung... invalid jpeg. oder so.. liegt also irgendwie an der datei.. kann sein das es ein strukturfehler ist.. hab die dateien von einer abgeschmierten festplatte gerettet...
|
30.01.2006, 14:00:56
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 15
|
|
AW: Bilderupload mit Verkleinerung.. nur jpg.. einige datein funktionien, andere nich
hab den fehler eben selbst gefunden... da muss noch ein
PHP-Code:
chmod($image,0755);
rein.. ich würde mich aber freuen wenn jemand eine möglichkeit für mehere Dateien postet...
als notlösung??.. kann man mehrere files in einem formular schicken.. also ich weiß wie das geht ist kein problem.. aber das lastet ja bekanntlich den scriptspeicher etwas aus hier sind mal die Daten von meinem Server.
http://www.schnappschiss25.de.vu/Upload-Test.php
wieviel Bilder kann man dem zutrauen, wenn mal von der maximalen Dateigröße von 2 MB ausgeht?
danke schon mal..
|
30.01.2006, 14:26:08
|
Anfänger
|
|
Registriert seit: Jan 2006
Beiträge: 15
|
|
AW: Bilderupload mit Verkleinerung.. nur jpg.. einige datein funktionien, andere nich
jab.. genau die meldung hab ich auch.. zumindest auf dem server..
das ist das gleiche bild.. aber das was geht, hab ich einfach nochmal neu gespeicht... dann gings.. ist irgendwie seltsam.. es liegt nicht an der komprimiertung oder sowas.. es will einfach nur nicht..
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:39:26 Uhr.
|