Frage

Ich habe ein paar kleine Flash -Widgets erstellt, die .mp3 Audio von einem Apache/PHP -Host streamen. Die MP3 -Datei kann nicht direkt zugegriffen werden und speichert sie nicht selbst im Browser -Cache.

Dazu setze ich die MP3 -Dateiberechtigte auf den Host auf "Besitzer: Read/Write" (numerischer Wert 600). Dies macht es so, dass nur meine .php -Datei die .mp3 lesen kann.

Dann stelle ich eine Anfrage an meine PHP -Datei aus meinem ActionScript und streamen den MP3 in mein Widget. (Wenn der Client/der Benutzer im Browser -Cache schaut, wird die MP3 -Datei nicht wie gewünscht gefunden.)

Dies ist der PHP -Code, der die Datei streamen:

<?php 
ob_start();
header("Expires: Mon, 20 Dec 1977 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-Type: audio/mpeg");
@readfile($_GET["file"]);
ob_end_flush();
?> 

Weiß jemand, wie man dieses Verhalten mit IIS/ASP.NET reproduziert

 1.) Make it so a file is only accessible to a file on the server.
 2.) Stream that file using an .ASPX or .ASHX?
War es hilfreich?

Lösung

Sie schützen die MP3s nicht wirklich, sondern sie nur verschleiern sie. Jeder kann sie immer noch retten, besonders wenn er nur einen HTTP -Debugger wie Fiddler anfängt, um herauszufinden, welche HTTP -Anrufe getätigt werden. Die Tatsache, dass Sie sie nicht so eingestellt haben, dass sie kein PHP -Skript durchlaufen, hilft nicht viel.

Um diesen Effekt mit ASP.NET zu erzielen, würden Sie eine schreiben HTTPHandler (Wahrscheinlich nur kurz vor einem .ashx), richten Sie alle Header auf die gleiche Weise ein context.Response.Headers, laden Sie dann die .mp3 Datei mit System.IO.FileStream und sende das an an context.Response.OutputStream. Sieh nach oben System.Web.HTTPHandler, System.IO.FileStream, und System.Web.HTTPResponse Auf MSDN für weitere Informationen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top