Mit Hilfe seiner Scripts und eines JS Packages "Highslide JS" habe ich dieses nun schon sehr weit gebracht.
Dateiupload, Ordnerupload, Favoriten setzen und entfernen, Anzeige, GPS Infos anzeigen nebst Openstreetmap Map als Iframe.Thumbnailerstellung, alles toll.
Nun entdeckte ich ein Problem.
Und zwar beim Ordnerupload. Upload funktioniert.
In der Datenbank werden Kategorie,Album ,Subalbum Bildname, Dateipfad Bild sowie Dateipfad Thumbnail gespeichert.
Jedoch wenn ich z.b. 500 Bilder in einem Subalbum habe steigt die Ladedauer immens.
Code: Alles auswählen
<?php
//PHP Start
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
require_once 'includes/connect.php';
require_once 'includes/functions.inc.php';
require_once 'gallery_inc/gallery_ini.php';
require_once 'gallery_inc/gallery_datalists.php';
$user = check_user();
$seitenname = 'Ordnerupload';
require_once 'header.php';
// Postcheck
if(!empty($_POST["kategorie"])) {$val_kategorie = $_POST["kategorie"];} else {$val_kategorie = "";}
if(!empty($_POST["album"])) {$val_album = $_POST["album"];} else {$val_album = "";}
if(!empty($_POST["subalbum"])) {$val_subalbum = $_POST["subalbum"];} else {$val_subalbum = "";}
// Postcheck ende
// Dateien aus Ordner hochladen
$_FILES = array_slice(scanDir($upload_dir), 2);
$anz_uploads = count($_FILES);
$filecounter = $anz_uploads;
for ($i = 0; $i < count($_FILES); $i++)
{
// Info über die Datei holen
$path = $upload_dir . $_FILES[$i];
$tmp_bild = $path;
$newpath = $bilder_dir;
list($tmpWidth, $tmpHeight, $tmpType) = getImageSize($path);
$set_filename = explode(".", $_FILES[$i]);
$filename = $set_filename[0];
$extension = strtolower($set_filename[1]);
$fn_filter = utf8_decode($filename);
$fn_trim = trim($fn_filter);
$fn_lower = mb_strtolower($filename);
$fn_rewritechars = str_replace(["ä", "ö", "ü", "ß", " ",], ["ae", "oe", "ue", "ss", "_",], $fn_lower);
$fn_result = preg_replace("/[^a-z0-9_-]/", '', $fn_rewritechars);
$bildname = substr($fn_result, 0, $maxFilename) . "." . $extension;
$thumb_name = 'tumb_' . $bildname;
// Info über die Datei holen ende
// Datumsausgabe generieren
$exif = exif_read_data($tmp_bild, 0, true);
if (isset($exif['EXIF']['DateTimeOriginal']))
{
$datum = $exif['EXIF']['DateTimeOriginal'];
}
else
{
$datum = date("d.m.Y");
}
$day_val = $datum;
$toDay = strtotime("+0 day", strtotime($day_val));;
$createdate = date("d.m.Y", $toDay);
$tag = date("d", $toDay);
$monat = date("m", $toDay);
$jahr = date("Y", $toDay);
// Datumsausgabe generieren Ende
// Dateinamen und Pfad formatieren
$bilddatei = $bilder_dir . $bildname;
$thumbdatei = $thumb_dir . 'tumb_' . $bildname;
$uploaddatei = $path;
// Dateinamen und Pfad formatieren ende
// Datenbankeinträge
$insert = $db->prepare
("INSERT IGNORE INTO `gal_bilder` SET
`bilddatei` = :bilddatei,
`thumbdatei` = :thumbdatei,
`bildname` = :bildname,
`kategorie` = :kategorie,
`album` = :album,
`subalbum` = :subalbum,
`createdate` = :createdate,
`tag` = :tag,
`monat` = :monat,
`jahr` = :jahr,
`width` = :width,
`height` = :height");
if ($insert->execute
([
':bilddatei' => $bilddatei,
':thumbdatei' => $thumbdatei,
':bildname' => $bildname,
':kategorie' => $val_kategorie,
':album' => $val_album,
':subalbum' => $val_subalbum,
':createdate' => $createdate,
':tag' => $tag,
':monat' => $monat,
':jahr' => $jahr,
':width' => $tmpWidth,
':height' => $tmpHeight
]))
{
// Erzeugung Thumbnail
// Dateiformat
switch ($extension)
{
case 'jpg':
$create = imageCreatefromJPEG($tmp_bild);
break;
case 'png':
$create = imageCreatefromPNG($tmp_bild);
break;
case 'gif':
$create = imageCreatefromGIF($tmp_bild);
break;
case 'webp':
$create = imageCreatefromWEBP($tmp_bild);
break;
}
// Breite und Höhe des Bildes ermitteln
$imageW = $tmpWidth;
$imageH = $tmpHeight;
// Thumbnail Abmessungen reduzieren
if ($imageW > $imageH)
{
$thumbW = $thumbWidth;
$thumbH = $imageH / $imageW * $thumbWidth;
}
if ($imageW < $imageH)
{
$thumbH = $thumbHeight;
$thumbW = $imageW / $imageH * $thumbHeight;
}
if ($imageW == $imageH)
{
$thumbW = $thumbWidth;
$thumbH = $thumbHeight;
}
// Thumbnail Abmessungen reduzieren ende
// Thumbnail mit neuen Abmessungen kopieren
$thumbnail = imageCreateTruecolor($thumbW, $thumbH);
imageCopyResampled($thumbnail, $create, 0, 0, 0, 0, $thumbW, $thumbH, $imageW, $imageH);
// Thumbnail speichern und den Grafikspeicher löschen
imageJPEG($thumbnail, $thumb_dir . $thumb_name, $thumbQuality);
imageDestroy($thumbnail);
// Erzeugung Thumbnail Ende
}
// Datenbankeinträge ende
// Fertige Dateien verschieben
rename($uploaddatei, $bilddatei);
$uploadresult = $filecounter;
// Fertige Dateien verschieben ende
// Erfolgsmeldung erstellen
if ($filecounter > 0)
{
$erfolgout = $filecounter.' von '.$filecounter;
$output =
'
<div class="col-10 my-4 mx-auto menu" style="color:#00ff00; border:5px #00ff00 solid; border-radius:15px">
<div class="col-10 my-4 mx-auto p-3 text-center" style="color:#00ff00; border:5px #00ff00 solid; border-radius:15px">
<h3>Es wurden ' . $erfolgout . ' Dateien erfolgreich in den Bilderordner verschoben! </h3>
</div>
</div>
';
}
else
{
$output =
'
<div class="col-10 my-4 mx-auto menu" style="color:#ff0000; border:5px #ff0000 solid; border-radius:15px">
<div class="col-10 my-4 mx-auto p-3 text-center" style="color:#ff0000; border:5px #ff0000 solid; border-radius:15px">
<h3>Es sind keine Dateien im Uploadordner vorhanden!</h3>
</div>
</div>
';
}
// Erfolgsmeldung erstellen ende
}
// Dateien aus Ordner hochladen ende
echo $output;
require_once 'footer.php';
?>
<script>
setTimeout("location.href='bilder_anzeige.php'",3000);
</script>
Also wenn ich Bilder hochlade, Benenne ich
Kategorie - Album - Subalbum
z.B. in
Urlaub - Tunesien - Tag 1.
Wenn nun aber die Bilderanzahl im Upload größer 50 ist, so soll das Album mit eine Laufenden Zahl ersetzt werden.
Zum Beispiel: Tag 1_01,Tag 1_02 ....
Leider weiss ich nicht wie ich das umsetzen kann.
Vielleicht kann mir ja jemand helfen.
Ich danke schon mal im Vorraus.
Und noch mal Vielen lieben Dank Werner Zenk du hast mir sehr viel geholfen