MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Programmierung und Entwicklung (Allgemein) > Web-Programmierung
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 19.04.2016, 20:26   #1
Horst14
MOF User
MOF User
Standard PHP - Bilder Upload mit Tumbnails erstellung

Ich habe mir einen Code gebaut indem ich ein Bild auf meine Webseite hochladen kann und das Bild in einer Datenbank abspeicher.

Damit das Bild nicht unnötig speicherplatz belegt und den Server in die Knie zwingt, erstelle ich beim Hochladen ein Tumbnail was dafür sorgt das mein Bild etwas verkleinert wird.

Mein Problem:
Auf meinem PC teste ich es mithilfe von xampp und da funktioniert alles ohne Probleme.
Sobald ich es jedoch auf mein WebServer lade, erhalte ich folgende Fehlermeldung:
Fatal error: Cannot re-assign auto-global variable _FILES in /users/homepage/www/upload.php on line 170

der Fehler betrifft folgende Codezeile:
function erst_thumbs($verzeichnis, $_FILES)

Auf dem Webserver läuft noch PHP 5.5 demnächst soll aber 5.6 sowie PHP 7 darauf laufen, falls das wichtig ist für euch.
Untenstehend habe ich den Quellcode hinzugefügt.

Vielleicht gibt es in diesem Forum jemanden der den Fehler findet?!

Vielen Dank vorab.

Zitat:

<?php

$array_absendenbutton=array_keys($_POST["neuesbild"]);
$einsatzid=$array_absendenbutton[0];
?>

<fieldset class="format">
<legend class="fett">Einsatzbilder Hochladen</legend>
<?php

$fehler=0;

$verzeichnis ="./orgbilder/";
$verz ="./bilder/";

$max_groesse = 2097152;

$datentyp = array
(
"png" => "image/png",
"jpg" => "image/jpeg",
"gif" => "image/gif",
);
//welche breite soll das finale thumbnail haben?
$resWidth = 428;
//welche höhe soll das finale thumbnail haben?
$resHeight = 396;

?>
<form action="index.php?seite=admin&section=cms_upload" method="post" enctype="multipart/form-data">
<input type="hidden" name="neuesbild[<?php echo $einsatzid; ?>]" value="einsatzid"> <!--$einsatzid muss unter name stehen da ich diesen Wert mit hidden übergebe -->
<div class="text"><br>Bild auswählen:</div> <input type="file" name="datei" size="35"> <br>
<div class="text">Dateiformat: .jpg, .gif, .png <br>
- Dateigröße max.:
<?php echo (number_format(($max_groesse /1024/1024), 1, ",", "")) ?>
MB </div><br>
<input type="submit" name="submit" value="Bild hochladen">
<?php

if(!file_exists("./bilder/")) //prüfen ob der Ordner schon existiert
{
mkdir("./bilder/", 0777); //anlegen des Ordners mit vollen rechten
}
else
{
//echo '<div class="text">'.$datum.' existiert bereits.</div><br>'; //fehlermeldung
}

if(!file_exists("./bilder1/")) //prüfen ob der Ordner schon existiert
{
mkdir("./bilder1/", 0777); //anlegen des Ordners mit vollen rechten
}
else
{
//echo '<div class="text"> Der Ordner bilder1 existiert bereits.</div><br>'; //fehlermeldung
}

if($fehler==0)
{
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if ($_FILES["datei"]["name"] != "" && $_FILES["datei"]["error"] == 0)
{
if (in_array($_FILES["datei"]["type"], $datentyp)) //Prüft ob es sich um eine autorisierte Bilddatei handelt
{
if ($_FILES["datei"]["size"] <= $max_groesse)
{
if (file_exists($verz . $_FILES["datei"]["name"]))
{
echo '<div class="text"><br>Eine Datei mit gleichem Namen ist bereits vorhanden!</div>';
}
else
{
move_uploaded_file($_FILES["datei"]["tmp_name"], $verzeichnis . $_FILES["datei"]["name"]); //Datei wird in den Ordner kopiert
erst_thumbs($verzeichnis, $_FILES); //Funktion zum Tumbnails erstellen aufrufen
if (file_exists($verzeichnis . $_FILES["datei"]["name"]))
{
echo ' <div class="text"><br>Das Bild ' . $_FILES["datei"]["name"] . ' - mit einer Dateigröße von ' . $_FILES["datei"]["size"] . ' Bytes - wurde erfogreich auf den Server geladen</div>'; //zeigt den Dateinamen und die Dateigröße an

if(is_dir($verzeichnis))
{
if($verz = opendir($verzeichnis))
{
if($verzeichnis[strlen($verzeichnis)-1] != '/') $verzeichnis = $verzeichnis.'/';
while(($file = readdir($verz)) !== false)
{
if($file != '.' && $file != '..')
{
if(is_dir($verzeichnis.$file) && !is_link($verzeichnis.$file))
{
rmdir_recursive($verzeichnis.$file);
}
elseif(is_file($verzeichnis.$file))
{
unlink($verzeichnis.$file);
}
}
}
closedir($verz);
}
}
verbindungherstellen("open");

$eintrag = mysql_query("INSERT INTO bilder
(bildname, bilderID)
VALUES ('".$_FILES["datei"]["name"]."','".$einsatzid."')");

if($eintrag)
{
echo '<div class="text">Der Datenbankeintrag wurde erfolgreich hinzugefügt.<br> </div>';
}
else
{
echo '<div class="text"> Fehler datenbank eintrag nicht erfolgt.<br> </div>';
}

verbindungherstellen("close");

}
else
{
echo '<div class="text">Beim hochladen der Datei ist leider ein Fehler aufgetreten!</div>';
}
}
}
else
{
echo '<div class="text"><br>Die Datei ist leider zu groß!</div>';
}
}
else
{
echo '<div class="text">Ungüldiges Dateiformat!</div>';
}
}
else
{
echo '<div class="text">Bitte wählen Sie eine Datei aus!</div>';
}
}
}
else
{
echo '<div class="text">Fehler sie haben eine Fehleingabe getätigt bitte überprüfen Sie jedes Eingabe Feld<br></div>';
}
echo '</form>';

function erst_thumbs($verzeichnis, $_FILES)
{
// Name des Ordners, in dem die Originale sind:
$folder_scr = $verzeichnis;

//Name der Datei
$img_src = $_FILES;

// Name des Ordners, in den die Thumbs sollen:
$des_src = "./bilder/";

// Max. Ausdehnung der thumb-Datei in x-Richtung
$thumbx = "350";

// Max. Ausdehnung der thumb-Datei in y-Richtung
$thumby = "350";

function mkthumb($img_src, // Dateiname
$img_width, // max. Größe in x-Richtung
$img_height, // max. Größe in y-Richtung
$folder_scr, // Ordner der normalen bilder
$des_src) // Ordner der Thumbs
{

$image = imagecreatefromjpeg($folder_scr."/".$img_src);
list($src_width, $src_height) = getimagesize($folder_scr."/".$img_src);
if($src_width >= $src_height)
{
$new_image_width = $img_width;
$new_image_height = $src_height * $img_width / $src_width;
}
if($src_width < $src_height)
{
$new_image_height = $img_width;
$new_image_width = $src_width * $img_height / $src_height;
}
$new_image = imagecreatetruecolor($new_image_width, $new_image_height);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_image_width,$new_image_height, $src_width, $src_height);
imagejpeg($new_image, $des_src."/".$img_src, 100);
}

$filename = $_SERVER['PHP_SELF'];

$verz=opendir($folder_scr);

$linkl = array ();

while ($file = readdir ($verz))
{
if($file != "." && $file != ".." && $file != $filename)
{
array_push ($linkl, "$file");
}
}
$anzahl = count($linkl);

sort ($linkl);

foreach($linkl as $key => $value)
{
if(!file_exists($des_src."/".$value))
{
mkthumb($value, $thumbx, $thumby, $folder_scr, $des_src);

}
else
{
echo '<div class="text"><br>Eine datei mit dem gleichen Dateinamen ist bereits vorhanden!</div>';
}
}
}
?>
</fieldset>

Horst14 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.04.2016, 08:45   #2
Horst14
Threadstarter Threadstarter
MOF User
MOF User
Standard

Ich habe den Fehler gefunden... Ich habe eine Globale Variable übergeben :-( $_FILES hätte ich nicht übergeben müssen.

Aber eine Frage hätte ich noch. Ich lade ein großes Bild auf den Server um es anschließend zu verkleinern und abzulegen.
Kann ich das verkleinern des Bildes auch anders realisieren ohne die Große Bilddatei hochzuladen?
Horst14 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

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 anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:11 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.