Hoi,

Ik zou een lied willen afspelen welke in de private folder staat dus buiten de root.
Het bestand haal ik op via

$bestand=$_GET['s'] . '.mp3';
$naam = $_SERVER['DOCUMENT_ROOT'] . '/../httpd.private/mp3/' . $bestand;

Dit lukt! Echter dit natuurlijk niet meer:(
<audio controls autoplay>
  <source src="' . $bestand . '" type="audio/mpeg">
  Your browser does not support the audio tag.
</audio> 


Hoe kan ik dit oplossen?

Jan
Met readfile() dus ophalen in een apart PHPscript.
Readfile :ok.
Maar hoe implementeren met audio
Readfile() gebruik je in een apart script, en met GET bepaal je welk bestand je wilt ophalen.
mp3.php:
<?php
$dir = "../protected_content";
$filename = 'song.mp3';
$file = $dir."/".$filename;

$extension = "mp3";
$mime_type = "audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3";

if(file_exists($file)){
header('Content-type: {$mime_type}');
header('Content-length: ' . filesize($file));
header('Content-Disposition: filename="' . $filename);
header('X-Pad: avoid browser bug');
header('Cache-Control: no-cache');
readfile($file);
}else{
header("HTTP/1.0 404 Not Found");
}
?>
Bedankt
Eh? Gaat dit werken?
header('Content-type: {$mime_type}');


Test:
<?php
$bla = 'test';

echo 'dit is een {$bla}';
?>


Levert (letterlijk):
dit is een {$bla}


EDIT: waar is overigens de sluitende dubbele quote voor de filename?

Reageren