13. Oktober 2023
Serverpfad einer Datei in WordPress
Wenn du, z.B. mit Hilfe von LazyBlocks, in WordPress Downloads zur Verfügung stellst, wird der Pfad zur Datei als URL ausgegeben. Um den Dateityp oder die Dateigröße mit PHP zu bestimmen, wird allerdings der absolute Serverpfad benötigt.
Also z.B.
/var/www/vhosts/webxxx.server.xxxxxxxx.de/httpdocs/fbnfrtg/wp-content/uploads/2023/10/Test-PDF.pdf
Code-Sprache: JavaScript (javascript)
statt:
https://www.fbnfrtg.de/wp-content/uploads/2023/10/Test-PDF.pdf
Code-Sprache: JavaScript (javascript)
Mit folgendem Code kannst du den Serverpfad einer Datei in WordPress ermitteln und den Dateityp und die Dateigröße ausgeben.
$pos = strpos(__DIR__, '/wp-content');
$part1 = substr(__DIR__, 0, $pos);
$fileurl = $attributes['datei']['url']; /* LazyBlock-Variable */
$siteurl = get_site_url();
$part2 = str_replace($siteurl , "", $fileurl);
$filepath = $part1.$part2;
$filesize = filesize($filepath);
$ext = pathinfo($filepath, PATHINFO_EXTENSION);
if($filesize < 1024) {
$filesize_output = "{$filesize} Bytes";
} elseif($filesize < 1048576) {
$size_kb = round($filesize/1024);
$filesize_output = "{$size_kb} KB";
} else {
$size_mb = round($filesize/1048576, 1);
$filesize_output = "{$size_mb} MB";
}
Code-Sprache: PHP (php)