php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.09.2008, 03:31   #1 (permalink)
Neuer Benutzer
 
Registriert seit: 19.09.2008
Beiträge: 2
SniperWolf befindet sich auf einem aufstrebenden Ast
Standard Upload Script bleibt einfach stehen

Hallo Leute

Bin noch neu hier und auch nicht der große Profi was PHP angeht. Daher hoffe ich das ihr ein wenig Rücksicht habt. Ich hab mir auch schon mit Google einen "Wolf" gesucht aber erfolglos.

Zu meinem Problem:

Ich habe für unsere Website ein Gallery Upload Script gebastelt. Dieses funktioniert auch bis zu einem gewissen Punkt ganz gut. Ich hab natürlich ganz normal ein Upload Formular mit File Feldern gemacht und lasse die Anzahl der Bilder die hochgeladen werden sollen den User bestimmen und lege sie dann mit einer Variable durch eine Schleife fest. Alles noch kein Problem..

Nun zum wirklichen Problem - Das Script bleibt beim Upload einfach stehen. Es überträgt immer bis zu einem gewissen Punkt die Bilder und bleibt dann ohne Fehlermeldung einfach stehen. Firefix sagt unten Links einfach nur "Fertig". Das scheint aber immer von Bilder zu Bilder unterschiedlich zu sein. Mal bleibt das Script nach 7 mal nach 10 stehen. Ich weiss nicht wo das Script hier einen Unterschied macht. Möglicherweise die Dateigröße? Ich versuche 19 Bilder hochzuladen die so im durchschnitt 100 KB groß sind. Alle insgesamt sind 1,47 MB groß. Dort bleibt er immer nach dem 7. Bild stehen.

Meine Vermutung bzw. ein weiteres Problem (?!): Die Bilder die hochladen werden ja durch eine Schleife bearbeitet. Nun muss von jedem Bild ein Thumbnail erstellt werden, ein Vorschau-Bild und das Original Bild soll runtergesetzt werden von z.B. 1024x768 auf 640x480. Noch dazu muss ein Wasserzeichen aus einer PNG Datei auf dem Bild erstellt werden. Das löse ich damit ich die beste Quallität bei den Bildern habe über imagecopyresampled(); was auch ganz gut funktioniert, nur wie gesagt nur bis zu einem bestimmten Bild. Ich denke mal das die Funktion zu Speicher fressend ist?! Das Script läuft auch seeehr langsam ab. Nehm ich die Funktion raus und lade NUR das Bild hoch funktioniert es problemlos und innerhalb von 5 Sekunden.. Das arbeite ich alles in dieser Schleife ab.

Ich habe schon gelesen das es möglich sein kann das dass memory_limit in der php.ini zu niedrig ist, aber ich hab das schon hoch gesetzt auf 64MB was doch reichen müsste?! Auch die max_execution_time habe ich auf 600 Sek erhöht. Ich habe auch schon gelesen das man mit der Funktion imagedestroy(); die Ressourcen wieder freigeben kann, aber auch das scheint nichts zu helfen.

Ich bin langsam wirklich verzweifelt Noch ein paar Informationen am Rande: Wir haben das Strato DynamiX Paket mit dem Contruction Update (Sprich MySQL und PHP5 usw glaub ich). Das Hauptverzeichniss wo sich die Scripts befinden sind auch alle auf PHP5 gestellt.

Ich hoffe ihr habt für mich einen kleinen Tipp wie ich das Problem beheben könnte...

Vielen Dank schonmal für eure Geduld und eure Hilfe!

Mfg - SniperWolf
SniperWolf ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.09.2008, 07:05   #2 (permalink)
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.781
HPR1974 wird schon bald berühmt werden
Standard

na dann poste mal deinen code, dann kann man den mal analysieren.
HPR1974 ist offline  
Alt 19.09.2008, 12:38   #3 (permalink)
Neuer Benutzer
 
Registriert seit: 19.09.2008
Beiträge: 2
SniperWolf befindet sich auf einem aufstrebenden Ast
Standard

Vielen Dank schonmal für deine Hilfsbereitschaft!

Hier ist der Code:

Er ist ein wenig durcheinander aber vielleicht habt ihr ja noch Tipps wie man das besser machen kann...

<?PHP

// Variablen festlegen aus der Form
$userid = $_COOKIE['user'];
$userpw = $_COOKIE['pw'];
$gallery_desc = $_POST["gallery_desc"];
$gallery_title = $_POST["gallery_title"];
$thumb_auswahl = $_POST["radio"];

// Dateigröße Maximum und Minimum
$b_min = 10; // 10 Byte Minimum
$b_max = 3572864 ; // 3,5 MB Maximum

// Zeit Stamp Variablen festlegen
$timestamp = time();
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);


// Die Gallery ID zufallsgenerieren um später die Gallery zu identifizieren
$gallery_id = "";
$pool = "abcdefghijklmnopqrstuvwxyz";
srand ((double)microtime()*1000000);
for(
$index = 0; $index < 5; $index++)
{
$gallery_id .= substr($pool,(rand()%(strlen ($pool))), 1);
}

// Der Temporäre Ordner wo die Bilder zuerst rein sollen.
mkdir("gallery/_temp/".$gallery_id."/");
mkdir("gallery/_temp/".$gallery_id."/big/");
mkdir("gallery/_temp/".$gallery_id."/small/");
$ordnername = "gallery/_temp/".$gallery_id."/";

// Chmod für den Userordner 777 vergeben
chmod($ordnername, 0777);

$a = 0;
// Nun die Dateien Uploaden
foreach($_FILES as $strFieldName => $arrPostFiles)
{
$a = $a + 1;
$type = $arrPostFiles['type'];
// Wenn Datei nicht JPEG ist oder keine Datei gewählt wurde als Fehler ausgeben
if ($type != "image/jpg" and $type != "image/jpeg"){
$a = $a - 1;
echo
"<center><br /><span class=\"grossschrift\"><font color=#FF4848><b>Keine Datei ausgew&auml;hlt oder das Format oder die Gr&ouml;&szlig;e stimmt nicht!</b></font></span><br /></center>"; }
else {
$strFileName = $arrPostFiles['name'];
$strFileTemp = $arrPostFiles['tmp_name'];
// Hier das Bild dann in den Temporären Ordner kopieren
copy ($strFileTemp, $ordnername."big/bild".$a.".jpg");
$Grafikdatei = $ordnername."big/bild".$a.".jpg";

$Bilddaten = getimagesize($Grafikdatei);
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];

// Hier das Bild mit Seitenverhältniss verkleinern auf 640xXXX
if($OriginalBreite > $OriginalHoehe) {

$Bilddaten = getimagesize($Grafikdatei);
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
$ThumbnailBreite = 640;

// Den Thumbnail auch mit Seitenverhätniss verkleinern
if($OriginalBreite < $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);

}

else {


$ThumbnailHoehe = 640;

if(
$OriginalHoehe < $ThumbnailHoehe)
{
$ThumbnailBreite=$OriginalBreite;
}


$Skalierungsfaktor = $OriginalHoehe/$ThumbnailHoehe;
$ThumbnailBreite = intval($OriginalBreite/$Skalierungsfaktor);

}

// Hier die Grafik noch mit einem Wasserzeichen versehen...
$Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
imagecopyresampled($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImageJPEG($Thumbnailgrafik, $ordnername."big/bild".$a.".jpg");

$Grafik = ImageCreateFromJPEG($ordnername."big/bild".$a.".jpg");
$Wasserzeichen = ImageCreateFromPNG("images/watermark.png");
imagecopy($Grafik, $Wasserzeichen, imagesx($Grafik)-imagesx($Wasserzeichen), imagesy($Grafik)-imagesy($Wasserzeichen), 0, 0, imagesx($Wasserzeichen), imagesy($Wasserzeichen));
imagejpeg($Grafik, $ordnername."big/bild".$a.".jpg");

$Bilddaten = getimagesize($Grafikdatei);
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
$ThumbnailBreite = 128;

if(
$OriginalBreite < $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);

$Originalgrafik = imagecreatefromjpeg($Grafikdatei);
$Thumbnailgrafik = imagecreatetruecolor($ThumbnailBreite, $ThumbnailHoehe);
imagecopyresampled($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
imagejpeg($Thumbnailgrafik, $ordnername."small/bild".$a.".jpg");

// Meldung geben das die Datei erfolgreich hochgeladen wurde
echo "<center><br /><span class=\"grossschrift\"><font color=#33FF33><b>Die Datei $strFileName wurde erfolgreich hochgeladen!</b></font></span><br /></center>";
}
}

// Ein Vorschau Bild erzeugen
$Grafikdatei = $ordnername."big/bild".$thumb_auswahl.".jpg";
if (
file_exists($Grafikdatei)) { echo ""; }
else {
$Grafikdatei = $ordnername."big/bild1.jpg"; }
$Bilddaten = @getimagesize($Grafikdatei);

$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
$ThumbnailBreite = 150;

if(
$OriginalBreite < $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = @intval($OriginalHoehe/$Skalierungsfaktor);

$Originalgrafik = imagecreatefromjpeg($Grafikdatei);
$Thumbnailgrafik = imagecreatetruecolor($ThumbnailBreite, $ThumbnailHoehe);
imagecopyresampled($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
imagejpeg($Thumbnailgrafik, $ordnername."preview.jpg");

// Nun soll zur Sicherheit gezählt werden ob sich auch die Dateien im Ordner befinden... Wenn nicht Weiterleiten über den Meta Tag und mit die den code abbrechen
$anzahl_bilder2 = count(glob($ordnername."/big/*jpg"));
if(
$anzahl_bilder2 <= "0") { echo "<meta http-equiv='refresh' content='sekunden_bis_umleitung_erfolgt;URL=profil e_gallery_create_error.php?error=nopics'>"; die; }

// Ansonsten nun den richtigen Ordner erstellen und die dateien dort hin kopieren
mkdir("gallery/".$gallery_id."/");
mkdir("gallery/".$gallery_id."/big/");
mkdir("gallery/".$gallery_id."/small/");
// Chmod f&uuml;r den Userordner 777 vergeben
chmod("gallery/".$gallery_id."/", 0777);

copy($ordnername."preview.jpg", "gallery/".$gallery_id."/preview.jpg");

$Pfad = $ordnername."/big/";
if(
$Verzeichniszeiger = opendir($Pfad)) {
while(
$Datei = readdir($Verzeichniszeiger)) {
if(
$Pfad.$Datei != "." && $Datei != "..") {

@
copy($Pfad.$Datei, "gallery/".$gallery_id."/big/".$Datei);

}
}
closedir($Verzeichniszeiger);
}

$Pfad = $ordnername."/small/";
if(
$Verzeichniszeiger = opendir($Pfad)) {
while(
$Datei = readdir($Verzeichniszeiger)) {
if(
$Pfad.$Datei != "." && $Datei != "..") {

@
copy($Pfad.$Datei, "gallery/".$gallery_id."/small/".$Datei);

}
}
closedir($Verzeichniszeiger);
}

// UNd nun noch ein paar Daten in die Datenbank eintragen
$abfrage1 = "SELECT user_id, user_passwort, user_nickname FROM users WHERE user_id = '$userid'";
$ergebniss1 = mysql_query($abfrage1);

while (
$row = mysql_fetch_array($ergebniss1, MYSQL_NUM)) {

// Die Userdaten Updaten
mysql_query("INSERT INTO gallery (user_id, user_nick, gallery_id, gallery_title, gallery_desc, gallery_datum, anzahl_bilder) VALUES ('$userid', '$row[2]', '$gallery_id', '$gallery_title', '$gallery_desc', '$datum', '$anzahl_bilder')");

}

?> "> <?PHP

// Variablen festlegen aus der Form
$userid = $_COOKIE['user'];
$userpw = $_COOKIE['pw'];
$gallery_desc = $_POST["gallery_desc"];
$gallery_title = $_POST["gallery_title"];
$thumb_auswahl = $_POST["radio"];

// Dateigröße Maximum und Minimum
$b_min = 10; // 10 Byte Minimum
$b_max = 3572864 ; // 3,5 MB Maximum

// Zeit Stamp Variablen festlegen
$timestamp = time();
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);


// Die Gallery ID zufallsgenerieren um später die Gallery zu identifizieren
$gallery_id = "";
$pool = "abcdefghijklmnopqrstuvwxyz";
srand ((double)microtime()*1000000);
for(
$index = 0; $index < 5; $index++)
{
$gallery_id .= substr($pool,(rand()%(strlen ($pool))), 1);
}

// Der Temporäre Ordner wo die Bilder zuerst rein sollen.
mkdir("gallery/_temp/".$gallery_id."/");
mkdir("gallery/_temp/".$gallery_id."/big/");
mkdir("gallery/_temp/".$gallery_id."/small/");
$ordnername = "gallery/_temp/".$gallery_id."/";

// Chmod für den Userordner 777 vergeben
chmod($ordnername, 0777);

$a = 0;
// Nun die Dateien Uploaden
foreach($_FILES as $strFieldName => $arrPostFiles)
{
$a = $a + 1;
$type = $arrPostFiles['type'];
// Wenn Datei nicht JPEG ist oder keine Datei gewählt wurde als Fehler ausgeben
if ($type != "image/jpg" and $type != "image/jpeg"){
$a = $a - 1;
echo
"<center><br /><span class=\"grossschrift\"><font color=#FF4848><b>Keine Datei ausgew&auml;hlt oder das Format oder die Gr&ouml;&szlig;e stimmt nicht!</b></font></span><br /></center>"; }
else {
$strFileName = $arrPostFiles['name'];
$strFileTemp = $arrPostFiles['tmp_name'];
// Hier das Bild dann in den Temporären Ordner kopieren
copy ($strFileTemp, $ordnername."big/bild".$a.".jpg");
$Grafikdatei = $ordnername."big/bild".$a.".jpg";

$Bilddaten = getimagesize($Grafikdatei);
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];

// Hier das Bild mit Seitenverhältniss verkleinern auf 640xXXX
if($OriginalBreite > $OriginalHoehe) {

$Bilddaten = getimagesize($Grafikdatei);
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
$ThumbnailBreite = 640;

// Den Thumbnail auch mit Seitenverhätniss verkleinern
if($OriginalBreite < $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);

}

else {


$ThumbnailHoehe = 640;

if(
$OriginalHoehe < $ThumbnailHoehe)
{
$ThumbnailBreite=$OriginalBreite;
}


$Skalierungsfaktor = $OriginalHoehe/$ThumbnailHoehe;
$ThumbnailBreite = intval($OriginalBreite/$Skalierungsfaktor);

}

// Hier die Grafik noch mit einem Wasserzeichen versehen...
$Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
imagecopyresampled($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImageJPEG($Thumbnailgrafik, $ordnername."big/bild".$a.".jpg");

$Grafik = ImageCreateFromJPEG($ordnername."big/bild".$a.".jpg");
$Wasserzeichen = ImageCreateFromPNG("images/watermark.png");
imagecopy($Grafik, $Wasserzeichen, imagesx($Grafik)-imagesx($Wasserzeichen), imagesy($Grafik)-imagesy($Wasserzeichen), 0, 0, imagesx($Wasserzeichen), imagesy($Wasserzeichen));
imagejpeg($Grafik, $ordnername."big/bild".$a.".jpg");

$Bilddaten = getimagesize($Grafikdatei);
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
$ThumbnailBreite = 128;

if(
$OriginalBreite < $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);

$Originalgrafik = imagecreatefromjpeg($Grafikdatei);
$Thumbnailgrafik = imagecreatetruecolor($ThumbnailBreite, $ThumbnailHoehe);
imagecopyresampled($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
imagejpeg($Thumbnailgrafik, $ordnername."small/bild".$a.".jpg");

// Meldung geben das die Datei erfolgreich hochgeladen wurde
echo "<center><br /><span class=\"grossschrift\"><font color=#33FF33><b>Die Datei $strFileName wurde erfolgreich hochgeladen!</b></font></span><br /></center>";
}
}

// Ein Vorschau Bild erzeugen
$Grafikdatei = $ordnername."big/bild".$thumb_auswahl.".jpg";
if (
file_exists($Grafikdatei)) { echo ""; }
else {
$Grafikdatei = $ordnername."big/bild1.jpg"; }
$Bilddaten = @getimagesize($Grafikdatei);

$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
$ThumbnailBreite = 150;

if(
$OriginalBreite < $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = @intval($OriginalHoehe/$Skalierungsfaktor);

$Originalgrafik = imagecreatefromjpeg($Grafikdatei);
$Thumbnailgrafik = imagecreatetruecolor($ThumbnailBreite, $ThumbnailHoehe);
imagecopyresampled($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
imagejpeg($Thumbnailgrafik, $ordnername."preview.jpg");

// Nun soll zur Sicherheit gezählt werden ob sich auch die Dateien im Ordner befinden... Wenn nicht Weiterleiten über den Meta Tag und mit die den code abbrechen
$anzahl_bilder2 = count(glob($ordnername."/big/*jpg"));
if(
$anzahl_bilder2 <= "0") { echo "<meta http-equiv='refresh' content='sekunden_bis_umleitung_erfolgt;URL=profil e_gallery_create_error.php?error=nopics'>"; die; }

// Ansonsten nun den richtigen Ordner erstellen und die dateien dort hin kopieren
mkdir("gallery/".$gallery_id."/");
mkdir("gallery/".$gallery_id."/big/");
mkdir("gallery/".$gallery_id."/small/");
// Chmod f&uuml;r den Userordner 777 vergeben
chmod("gallery/".$gallery_id."/", 0777);

copy($ordnername."preview.jpg", "gallery/".$gallery_id."/preview.jpg");

$Pfad = $ordnername."/big/";
if(
$Verzeichniszeiger = opendir($Pfad)) {
while(
$Datei = readdir($Verzeichniszeiger)) {
if(
$Pfad.$Datei != "." && $Datei != "..") {

@
copy($Pfad.$Datei, "gallery/".$gallery_id."/big/".$Datei);

}
}
closedir($Verzeichniszeiger);
}

$Pfad = $ordnername."/small/";
if(
$Verzeichniszeiger = opendir($Pfad)) {
while(
$Datei = readdir($Verzeichniszeiger)) {
if(
$Pfad.$Datei != "." && $Datei != "..") {

@
copy($Pfad.$Datei, "gallery/".$gallery_id."/small/".$Datei);

}
}
closedir($Verzeichniszeiger);
}

// UNd nun noch ein paar Daten in die Datenbank eintragen
$abfrage1 = "SELECT user_id, user_passwort, user_nickname FROM users WHERE user_id = '$userid'";
$ergebniss1 = mysql_query($abfrage1);

while (
$row = mysql_fetch_array($ergebniss1, MYSQL_NUM)) {

// Die Userdaten Updaten
mysql_query("INSERT INTO gallery (user_id, user_nick, gallery_id, gallery_title, gallery_desc, gallery_datum, anzahl_bilder) VALUES ('$userid', '$row[2]', '$gallery_id', '$gallery_title', '$gallery_desc', '$datum', '$anzahl_bilder')");

}

?>
SniperWolf ist offline  
Alt 19.09.2008, 12:41   #4 (permalink)
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 21.228
PHP-Kenntnisse:
Fortgeschritten
nikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblicknikosch ist ein wunderbarer Anblick
Standard

Hast den falschen Button erwischt. Zukünftig bitte ohne Direktformatierung...

PHP-Code:
<?PHP

// Variablen festlegen aus der Form
$userid $_COOKIE['user'];
$userpw $_COOKIE['pw'];
$gallery_desc $_POST["gallery_desc"];
$gallery_title $_POST["gallery_title"];
$thumb_auswahl $_POST["radio"];

// Dateigröße Maximum und Minimum
$b_min 10// 10 Byte Minimum
$b_max 3572864 // 3,5 MB Maximum

// Zeit Stamp Variablen festlegen
$timestamp time();
$datum date("d.m.Y",$timestamp);
$uhrzeit date("H:i",$timestamp);


// Die Gallery ID zufallsgenerieren um später die Gallery zu identifizieren
$gallery_id "";
$pool "abcdefghijklmnopqrstuvwxyz";
srand ((double)microtime()*1000000);
for(
$index 0$index 5$index++)
{
$gallery_id .= substr($pool,(rand()%(strlen ($pool))), 1);
}

// Der Temporäre Ordner wo die Bilder zuerst rein sollen.
mkdir("gallery/_temp/".$gallery_id."/");
mkdir("gallery/_temp/".$gallery_id."/big/");
mkdir("gallery/_temp/".$gallery_id."/small/");
$ordnername "gallery/_temp/".$gallery_id."/";

// Chmod für den Userordner 777 vergeben
chmod($ordnername0777);

$a 0;
// Nun die Dateien Uploaden
foreach($_FILES as $strFieldName => $arrPostFiles)
{
$a $a 1;
$type $arrPostFiles['type'];
// Wenn Datei nicht JPEG ist oder keine Datei gewählt wurde als Fehler ausgeben
if ($type != "image/jpg" and $type != "image/jpeg"){
$a $a 1;
echo 
"<center><br /><span class=\"grossschrift\"><font color=#FF4848><b>Keine Datei ausgew&auml;hlt oder das Format oder die Gr&ouml;&szlig;e stimmt nicht!</b></font></span><br /></center>"; }
else {
$strFileName $arrPostFiles['name'];
$strFileTemp $arrPostFiles['tmp_name'];
// Hier das Bild dann in den Temporären Ordner kopieren
copy ($strFileTemp$ordnername."big/bild".$a.".jpg");
$Grafikdatei $ordnername."big/bild".$a.".jpg";

$Bilddaten getimagesize($Grafikdatei);
$OriginalBreite $Bilddaten[0];
$OriginalHoehe $Bilddaten[1];

// Hier das Bild mit Seitenverhältniss verkleinern auf 640xXXX
if($OriginalBreite $OriginalHoehe) {

$Bilddaten getimagesize($Grafikdatei);
$OriginalBreite $Bilddaten[0];
$OriginalHoehe $Bilddaten[1];
$ThumbnailBreite 640;

// Den Thumbnail auch mit Seitenverhätniss verkleinern
if($OriginalBreite $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe intval($OriginalHoehe/$Skalierungsfaktor);

}

else {


$ThumbnailHoehe 640;

if(
$OriginalHoehe $ThumbnailHoehe)
{
$ThumbnailBreite=$OriginalBreite;
}


$Skalierungsfaktor $OriginalHoehe/$ThumbnailHoehe;
$ThumbnailBreite intval($OriginalBreite/$Skalierungsfaktor);

}

// Hier die Grafik noch mit einem Wasserzeichen versehen...
$Originalgrafik ImageCreateFromJPEG($Grafikdatei);
$Thumbnailgrafik ImageCreateTrueColor($ThumbnailBreite$ThumbnailHoehe);
imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$ThumbnailBreite$ThumbnailHoehe$OriginalBreite$OriginalHoehe);
ImageJPEG($Thumbnailgrafik$ordnername."big/bild".$a.".jpg");

$Grafik ImageCreateFromJPEG($ordnername."big/bild".$a.".jpg");
$Wasserzeichen ImageCreateFromPNG("http://www.php.de/images/watermark.png");
imagecopy($Grafik$Wasserzeichenimagesx($Grafik)-imagesx($Wasserzeichen), imagesy($Grafik)-imagesy($Wasserzeichen), 00imagesx($Wasserzeichen), imagesy($Wasserzeichen));
imagejpeg($Grafik$ordnername."big/bild".$a.".jpg");

$Bilddaten getimagesize($Grafikdatei);
$OriginalBreite $Bilddaten[0];
$OriginalHoehe $Bilddaten[1];
$ThumbnailBreite 128;

if(
$OriginalBreite $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe intval($OriginalHoehe/$Skalierungsfaktor);

$Originalgrafik imagecreatefromjpeg($Grafikdatei);
$Thumbnailgrafik imagecreatetruecolor($ThumbnailBreite$ThumbnailHoehe);
imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$ThumbnailBreite$ThumbnailHoehe$OriginalBreite$OriginalHoehe);
imagejpeg($Thumbnailgrafik$ordnername."small/bild".$a.".jpg");

// Meldung geben das die Datei erfolgreich hochgeladen wurde
echo "<center><br /><span class=\"grossschrift\"><font color=#33FF33><b>Die Datei $strFileName wurde erfolgreich hochgeladen!</b></font></span><br /></center>";
}
}

// Ein Vorschau Bild erzeugen
$Grafikdatei $ordnername."big/bild".$thumb_auswahl.".jpg";
if (
file_exists($Grafikdatei)) { echo ""; }
else { 
$Grafikdatei $ordnername."big/bild1.jpg"; }
$Bilddaten = @getimagesize($Grafikdatei);

$OriginalBreite $Bilddaten[0];
$OriginalHoehe $Bilddaten[1];
$ThumbnailBreite 150;

if(
$OriginalBreite $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = @intval($OriginalHoehe/$Skalierungsfaktor);

$Originalgrafik imagecreatefromjpeg($Grafikdatei);
$Thumbnailgrafik imagecreatetruecolor($ThumbnailBreite$ThumbnailHoehe);
imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$ThumbnailBreite$ThumbnailHoehe$OriginalBreite$OriginalHoehe);
imagejpeg($Thumbnailgrafik$ordnername."preview.jpg");

// Nun soll zur Sicherheit gezählt werden ob sich auch die Dateien im Ordner befinden... Wenn nicht Weiterleiten über den Meta Tag und mit die den code abbrechen
$anzahl_bilder2 count(glob($ordnername."/big/*jpg"));
if(
$anzahl_bilder2 <= "0") { echo "<meta http-equiv='refresh' content='sekunden_bis_umleitung_erfolgt;URL=profil e_gallery_create_error.php?error=nopics'>"; die; }

// Ansonsten nun den richtigen Ordner erstellen und die dateien dort hin kopieren
mkdir("gallery/".$gallery_id."/");
mkdir("gallery/".$gallery_id."/big/");
mkdir("gallery/".$gallery_id."/small/");
// Chmod f&uuml;r den Userordner 777 vergeben
chmod("gallery/".$gallery_id."/"0777);

copy($ordnername."preview.jpg""gallery/".$gallery_id."/preview.jpg");

$Pfad $ordnername."/big/";
if(
$Verzeichniszeiger opendir($Pfad)) {
while(
$Datei readdir($Verzeichniszeiger)) {
if(
$Pfad.$Datei != "." && $Datei != "..") {

@
copy($Pfad.$Datei"gallery/".$gallery_id."/big/".$Datei);

}
}
closedir($Verzeichniszeiger);
}

$Pfad $ordnername."/small/";
if(
$Verzeichniszeiger opendir($Pfad)) {
while(
$Datei readdir($Verzeichniszeiger)) {
if(
$Pfad.$Datei != "." && $Datei != "..") {

@
copy($Pfad.$Datei"gallery/".$gallery_id."/small/".$Datei);

}
}
closedir($Verzeichniszeiger);
}

// UNd nun noch ein paar Daten in die Datenbank eintragen
$abfrage1 "SELECT user_id, user_passwort, user_nickname FROM users WHERE user_id = '$userid'";
$ergebniss1 mysql_query($abfrage1);

while (
$row mysql_fetch_array($ergebniss1MYSQL_NUM)) {

// Die Userdaten Updaten
mysql_query("INSERT INTO gallery (user_id, user_nick, gallery_id, gallery_title, gallery_desc, gallery_datum, anzahl_bilder) VALUES ('$userid', '$row[2]', '$gallery_id', '$gallery_title', '$gallery_desc', '$datum', '$anzahl_bilder')");

}

?> "> <?PHP

// Variablen festlegen aus der Form
$userid $_COOKIE['user'];
$userpw $_COOKIE['pw'];
$gallery_desc $_POST["gallery_desc"];
$gallery_title $_POST["gallery_title"];
$thumb_auswahl $_POST["radio"];

// Dateigröße Maximum und Minimum
$b_min 10// 10 Byte Minimum
$b_max 3572864 // 3,5 MB Maximum

// Zeit Stamp Variablen festlegen
$timestamp time();
$datum date("d.m.Y",$timestamp);
$uhrzeit date("H:i",$timestamp);


// Die Gallery ID zufallsgenerieren um später die Gallery zu identifizieren
$gallery_id "";
$pool "abcdefghijklmnopqrstuvwxyz";
srand ((double)microtime()*1000000);
for(
$index 0$index 5$index++)
{
$gallery_id .= substr($pool,(rand()%(strlen ($pool))), 1);
}

// Der Temporäre Ordner wo die Bilder zuerst rein sollen.
mkdir("gallery/_temp/".$gallery_id."/");
mkdir("gallery/_temp/".$gallery_id."/big/");
mkdir("gallery/_temp/".$gallery_id."/small/");
$ordnername "gallery/_temp/".$gallery_id."/";

// Chmod für den Userordner 777 vergeben
chmod($ordnername0777);

$a 0;
// Nun die Dateien Uploaden
foreach($_FILES as $strFieldName => $arrPostFiles)
{
$a $a 1;
$type $arrPostFiles['type'];
// Wenn Datei nicht JPEG ist oder keine Datei gewählt wurde als Fehler ausgeben
if ($type != "image/jpg" and $type != "image/jpeg"){
$a $a 1;
echo 
"<center><br /><span class=\"grossschrift\"><font color=#FF4848><b>Keine Datei ausgew&auml;hlt oder das Format oder die Gr&ouml;&szlig;e stimmt nicht!</b></font></span><br /></center>"; }
else {
$strFileName $arrPostFiles['name'];
$strFileTemp $arrPostFiles['tmp_name'];
// Hier das Bild dann in den Temporären Ordner kopieren
copy ($strFileTemp$ordnername."big/bild".$a.".jpg");
$Grafikdatei $ordnername."big/bild".$a.".jpg";

$Bilddaten getimagesize($Grafikdatei);
$OriginalBreite $Bilddaten[0];
$OriginalHoehe $Bilddaten[1];

// Hier das Bild mit Seitenverhältniss verkleinern auf 640xXXX
if($OriginalBreite $OriginalHoehe) {

$Bilddaten getimagesize($Grafikdatei);
$OriginalBreite $Bilddaten[0];
$OriginalHoehe $Bilddaten[1];
$ThumbnailBreite 640;

// Den Thumbnail auch mit Seitenverhätniss verkleinern
if($OriginalBreite $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe intval($OriginalHoehe/$Skalierungsfaktor);

}

else {


$ThumbnailHoehe 640;

if(
$OriginalHoehe $ThumbnailHoehe)
{
$ThumbnailBreite=$OriginalBreite;
}


$Skalierungsfaktor $OriginalHoehe/$ThumbnailHoehe;
$ThumbnailBreite intval($OriginalBreite/$Skalierungsfaktor);

}

// Hier die Grafik noch mit einem Wasserzeichen versehen...
$Originalgrafik ImageCreateFromJPEG($Grafikdatei);
$Thumbnailgrafik ImageCreateTrueColor($ThumbnailBreite$ThumbnailHoehe);
imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$ThumbnailBreite$ThumbnailHoehe$OriginalBreite$OriginalHoehe);
ImageJPEG($Thumbnailgrafik$ordnername."big/bild".$a.".jpg");

$Grafik ImageCreateFromJPEG($ordnername."big/bild".$a.".jpg");
$Wasserzeichen ImageCreateFromPNG("http://www.php.de/images/watermark.png");
imagecopy($Grafik$Wasserzeichenimagesx($Grafik)-imagesx($Wasserzeichen), imagesy($Grafik)-imagesy($Wasserzeichen), 00imagesx($Wasserzeichen), imagesy($Wasserzeichen));
imagejpeg($Grafik$ordnername."big/bild".$a.".jpg");

$Bilddaten getimagesize($Grafikdatei);
$OriginalBreite $Bilddaten[0];
$OriginalHoehe $Bilddaten[1];
$ThumbnailBreite 128;

if(
$OriginalBreite $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe intval($OriginalHoehe/$Skalierungsfaktor);

$Originalgrafik imagecreatefromjpeg($Grafikdatei);
$Thumbnailgrafik imagecreatetruecolor($ThumbnailBreite$ThumbnailHoehe);
imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$ThumbnailBreite$ThumbnailHoehe$OriginalBreite$OriginalHoehe);
imagejpeg($Thumbnailgrafik$ordnername."small/bild".$a.".jpg");

// Meldung geben das die Datei erfolgreich hochgeladen wurde
echo "<center><br /><span class=\"grossschrift\"><font color=#33FF33><b>Die Datei $strFileName wurde erfolgreich hochgeladen!</b></font></span><br /></center>";
}
}

// Ein Vorschau Bild erzeugen
$Grafikdatei $ordnername."big/bild".$thumb_auswahl.".jpg";
if (
file_exists($Grafikdatei)) { echo ""; }
else { 
$Grafikdatei $ordnername."big/bild1.jpg"; }
$Bilddaten = @getimagesize($Grafikdatei);

$OriginalBreite $Bilddaten[0];
$OriginalHoehe $Bilddaten[1];
$ThumbnailBreite 150;

if(
$OriginalBreite $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = @intval($OriginalHoehe/$Skalierungsfaktor);

$Originalgrafik imagecreatefromjpeg($Grafikdatei);
$Thumbnailgrafik imagecreatetruecolor($ThumbnailBreite$ThumbnailHoehe);
imagecopyresampled($Thumbnailgrafik$Originalgrafik0000$ThumbnailBreite$ThumbnailHoehe$OriginalBreite$OriginalHoehe);
imagejpeg($Thumbnailgrafik$ordnername."preview.jpg");

// Nun soll zur Sicherheit gezählt werden ob sich auch die Dateien im Ordner befinden... Wenn nicht Weiterleiten über den Meta Tag und mit die den code abbrechen
$anzahl_bilder2 count(glob($ordnername."/big/*jpg"));
if(
$anzahl_bilder2 <= "0") { echo "<meta http-equiv='refresh' content='sekunden_bis_umleitung_erfolgt;URL=profil e_gallery_create_error.php?error=nopics'>"; die; }

// Ansonsten nun den richtigen Ordner erstellen und die dateien dort hin kopieren
mkdir("gallery/".$gallery_id."/");
mkdir("gallery/".$gallery_id."/big/");
mkdir("gallery/".$gallery_id."/small/");
// Chmod f&uuml;r den Userordner 777 vergeben
chmod("gallery/".$gallery_id."/"0777);

copy($ordnername."preview.jpg""gallery/".$gallery_id."/preview.jpg");

$Pfad $ordnername."/big/";
if(
$Verzeichniszeiger opendir($Pfad)) {
while(
$Datei readdir($Verzeichniszeiger)) {
if(
$Pfad.$Datei != "." && $Datei != "..") {

@
copy($Pfad.$Datei"gallery/".$gallery_id."/big/".$Datei);

}
}
closedir($Verzeichniszeiger);
}

$Pfad $ordnername."/small/";
if(
$Verzeichniszeiger opendir($Pfad)) {
while(
$Datei readdir($Verzeichniszeiger)) {
if(
$Pfad.$Datei != "." && $Datei != "..") {

@
copy($Pfad.$Datei"gallery/".$gallery_id."/small/".$Datei);

}
}
closedir($Verzeichniszeiger);
}

// UNd nun noch ein paar Daten in die Datenbank eintragen
$abfrage1 "SELECT user_id, user_passwort, user_nickname FROM users WHERE user_id = '$userid'";
$ergebniss1 mysql_query($abfrage1);

while (
$row mysql_fetch_array($ergebniss1MYSQL_NUM)) {

// Die Userdaten Updaten
mysql_query("INSERT INTO gallery (user_id, user_nick, gallery_id, gallery_title, gallery_desc, gallery_datum, anzahl_bilder) VALUES ('$userid', '$row[2]', '$gallery_id', '$gallery_title', '$gallery_desc', '$datum', '$anzahl_bilder')");

}

?>
__________________
--
„Eins ist Fakt: Gescannt wird nackt!“

Privatsphäre 2.0 - Nacktscanner mit Eyetracking.
Unser Flugzeug darf kein geschlechtsfreier Raum sein.
--
nikosch ist offline  
Alt 19.09.2008, 19:39   #5 (permalink)
PTC
Erfahrener Benutzer
 
Benutzerbild von PTC
 
Registriert seit: 27.10.2007
Beiträge: 1.684
PHP-Kenntnisse:
Anfänger
PTC sorgt für eine eindrucksvolle AtmosphärePTC sorgt für eine eindrucksvolle Atmosphäre
Standard

Das ist der längste Link den ich je in meinem Leben gesehen habe^^.
PTC ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Upload Script hat Probleme mit versch. Browsern [MimeType] fdm PHP Tipps 2008 11 27.07.2008 23:35
Upload Script andi PHP Tipps 2008 2 17.07.2008 22:43
SWiki, weil einfach einfach einfach ist. b++ Beitragsarchiv 0 06.10.2007 19:07
Upload Script + Multible Server cyberstorm PHP Tipps 2006 5 11.10.2006 19:43
Upload Script -CyberPlanet- Trash 4 22.05.2006 11:39
Upload Script Trash 3 11.02.2006 09:53
Daten Upload Script Hilfe!! PHP Tipps 2007 9 29.12.2005 10:39
[Erledigt] Verzögerung durch included Script? Umgehen? PHP Tipps 2005-2 4 10.07.2005 19:26
Upload Script PHP Tipps 2005-2 8 01.07.2005 08:45
picture upload script läuft nicht PHP Tipps 2005-2 11 30.06.2005 15:14
FTP upload via PHP script ... PHP Tipps 2005 2 13.04.2005 17:39
Upload Script funktioniert lokal nicht?! TheTommynator PHP Tipps 2005 16 22.01.2005 23:42
Ich bin auf der Suche nach einem fertigen Menü Upload Script Beitragsarchiv 7 22.08.2004 18:53
image upload script PHP Tipps 2004 3 15.08.2004 20:18
Problem beim Upload mehrerer Dateien per Script PHP Tipps 2004 1 04.08.2004 16:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
script bleibt stehen, php script bleibt stehen, big image upload php, imagecopy 5mb files php, uploadscript wasserzeichen, images uploaden pfadangabe, imagecreatefrom sicherheit, imagecopyresampled langsam, ftp upload bleibt bei 100 stehen, php max(user_nick) as user_nick, wo muss php code stehen, upload script galerie, php jpg upload script, strato wie die max_execution_time erhöhen, php script bleibt hängen, php else if \7 mal\, phpscript bleibt stehen, script bleibt in schleife stehen php

Alle Zeitangaben in WEZ +1. Es ist jetzt 09:28 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum