Hoe kan ik het downloaden van bestanden

stemmen
66

Ik heb een website die mp3's speelt in een flash player. Als 'spelen' een gebruiker klikt de flash player downloadt automatisch een mp3 en begint te spelen.

Is er een gemakkelijke manier om bij te houden hoe vaak een bepaald nummer clip (of een binair bestand) is gedownload?


Is het spel koppeling een link naar de werkelijke mp3-bestand of om een ​​JavaScript-code die verschijnt er een speler?

In het laatste geval kunt u eenvoudig uw eigen logging code in er om het aantal hits om het te volgen.

In het eerste geval zult u iets dat kan volgen de webserver log zelf en maken dat onderscheid nodig. Mijn hosting plan wordt geleverd met webalizer, wat doet dit mooi.

Het is javascript code, zodat antwoordt dat.

Echter, het zou leuk zijn om te weten hoe te downloaden met behulp van de andere methode (zonder over te schakelen hosts) te volgen.

De vraag is gesteld op 01/08/2008 om 18:14
bron van user
In andere talen...                            


8 antwoorden

stemmen
36

Het grappige is dat ik schreef een php media galerie voor al mijn muziek 2 dagen geleden. Ik had een soortgelijk probleem. Ik gebruik http://musicplayer.sourceforge.net/ voor de speler. En de afspeellijst zijn gebouwd via php. Alle muziek verzoek ga er een script genaamd xfer.php? File = WAT

$filename = base64_url_decode($_REQUEST['file']);
header("Cache-Control: public");
header('Content-disposition: attachment; filename='.basename($filename));
header("Content-Transfer-Encoding: binary");
header('Content-Length: '. filesize($filename));

//  Put either file counting code here. either a db or static files

//

readfile($filename);  //and spit the user the file


function base64_url_decode($input) {
    return base64_decode(strtr($input, '-_,', '+/='));
}

En wanneer u belt bestanden te gebruiken iets als:

function base64_url_encode($input) {
     return strtr(base64_encode($input), '+/=', '-_,');
}

http://us.php.net/manual/en/function.base64-encode.php

Als u met behulp van enkele javascript of een flash player (JW speler bijvoorbeeld) dat de feitelijke koppeling nodig heeft om een ​​mp3-bestand of wat dan ook, kunt u de tekst "& type = .mp3" toevoegen zodat de uiteindelijke linke wordt iets als: "www .example.com / xfer.php? file = 34842ffjfjxfh & type = .mp3" . Op die manier lijkt het alsof het eindigt met een mp3-extensie zonder dat het bestand link.

antwoordde op 01/08/2008 om 18:33
bron van user

stemmen
27

Gebruik uw httpd logbestanden. Installeer http://awstats.sourceforge.net/

antwoordde op 01/08/2008 om 18:51
bron van user

stemmen
21

Gebruik bash:

grep mp3 /var/log/httpd/access_log | wc
antwoordde op 02/10/2009 om 03:12
bron van user

stemmen
12

Als je liedje / binair bestand werd bediend door apache, kunt u gemakkelijk grep de access_log om uit te vinden van het aantal downloads. Een eenvoudige post-logrotate script kunt de logboeken grep en onderhouden van uw tellen statistieken in een db. Dit heeft de voorstelling voordeel doordat ze niet in je leven verzoek code pad. Het doen van niet-kritische dingen zoals statistieken offline is een goed idee om uw website te schalen om een ​​groot aantal gebruikers.

antwoordde op 12/10/2008 om 10:10
bron van user

stemmen
11

Je zou zelfs het opzetten van een Apache .htaccess richtlijn die * .mp3 verzoeken omzet in de query string dubayou is het werken met. Het is misschien een elegante manier om rechtstreeks verzoek te houden en nog steeds in staat om te slipstreamen aanmelden functie in de reactie.

antwoordde op 01/08/2008 om 18:42
bron van user

stemmen
6

Is het spel koppeling een link naar de werkelijke mp3-bestand of om een ​​JavaScript-code die verschijnt er een speler?

In het laatste geval kunt u eenvoudig uw eigen logging code in er om het aantal hits om het te volgen.

In het eerste geval zult u iets dat kan volgen de webserver log zelf en maken dat onderscheid nodig. Mijn hosting plan wordt geleverd met webalizer, wat doet dit mooi.

antwoordde op 01/08/2008 om 18:24
bron van user

stemmen
3

Het probleem dat ik had met dingen zoals AWStats / lezen door middel van web-server logs is dat grote downloads vaak kan worden gesplitst in data brokken in de logs. Dit maakt het verzoenen van de exacte aantal downloads heel moeilijk.

Ik stel voor de Google Analytics bijhouden van gebeurtenissen , omdat dit een keer per klik zal inschrijven op een download link.

antwoordde op 09/06/2016 om 09:38
bron van user

stemmen
3

Is er een database voor uw muziekbibliotheek? Als er een server code die gebruikt wordt bij het downloaden van de mp3, dan kunt u extra code daar toe te voegen aan het spel telling te verhogen. Je zou ook javascript maken een tweede verzoek om het spel te tellen verhogen, maar dit kan leiden dat mensen / robots valselijk ophogen telt.

Ik gebruikte om te werken voor een internet-radio website en we gebruikten aparte tabellen om de tijd elk nummer werd gespeeld volgen. Onze stromen werden aangedreven door een perl script dat icecast, zodat we de aanzet tot een databank verzoek elke keer dat een nieuwe track begon te spelen. Dan naar de play telling zouden we een vraag om te tellen hoeveel keer id een nummer was in het spel log uitvoert berekenen.

antwoordde op 04/09/2008 om 19:44
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more