Avatar billede riversen Nybegynder
12. januar 2003 - 16:59 Der er 11 kommentarer og
3 løsninger

Hvor mange gange en fil er downloadet

Hvordan registrerer man hvor mange gange en fil er blevet downloadet, så det kan skrives på siden?
Avatar billede melange Nybegynder
12. januar 2003 - 17:04 #1
Avatar billede woodydrn Nybegynder
12. januar 2003 - 17:07 #2
Tja der er flere måder at gøre det på, du kan lave et php script der sender en header image/jpeg eller bare plain text hvor efter du bare paster data'en ud til brugeren. Så update en database eller skrive i en fil, hvormange gange det nu er gjort.

F.eks

  $fp  = fopen("$file", "rb");
  $data = "";

  while(!feof($fp)) $data .= fread($fp, 1024);
  fclose($fp);

  header("Content-Type: video/mpeg\n");
  header("Content-Transfer-Encoding: binary\n");
  header("Content-length: " . strlen($data) . "\n");

  print($data);

Så vil den sende filen ... ellers kan du lave et script der bare updater din database og skriver et link ud til hvor filen nu ligger ...
Avatar billede niceday Nybegynder
12. januar 2003 - 17:07 #3
At oprette en database er ikke helt nok :-)

Du laver en downloadside, hvoraf det fremgår hvilke filer der kan downloades. Hver gang der trykkes på en fil til download - bliver brugeren først sendt gennem en slags gateway, som laver opdateringen i databasen. Når opdateringen er sket, redirecter du direkte til filen, hvorefter man så vil begynde download.
Avatar billede Slettet bruger
12. januar 2003 - 17:09 #4
når der linkes til siden kører den gennem en side der videre sender til filen.

Du opretter følgende tabel:
NAVN: downloads
id
filename - filnavne
downloadcount - antal downloads (nul til start)

redir.php?filid=(en eller anden id)
<?php
  $sql = "select * from files where id=$id";
  $result = mysql_query($sql);
  $fileinfo = mysql_fetch_array($result);
  $sql = "update downloadcount set downloadcount=(downloadcount+1) where id=$id";
  header("Location:files/".$fileinfo[filename]); /*Sender den besøgende videre til filens adresse!*/
?>

Håber det er til at forstå....
Avatar billede riversen Nybegynder
12. januar 2003 - 17:13 #5
regin: det er det...jeg skulle bare lige være sikker på om min formodning var rigtig
Avatar billede Slettet bruger
12. januar 2003 - 17:14 #6
Skal jeg smide et svar?
Avatar billede riversen Nybegynder
12. januar 2003 - 17:16 #7
regin: for sent :-) Jeg havde accepteret inden du kommenterede
Avatar billede riversen Nybegynder
12. januar 2003 - 17:17 #8
eller inden jeg så det ihvertfald
Avatar billede Slettet bruger
12. januar 2003 - 17:19 #9
helt ok!
Avatar billede riversen Nybegynder
13. januar 2003 - 15:25 #10
jeg er ikke gået i gang endnu, men hvad gør jeg så når jeg har sendt den besøgende videre til filens adresse...så skal man jo tilbage til den side man kom fra?
Og vil man ikke opleve det som om siden skifter...altså bliver blank..begynder at downloade og ryger tilbage igen, eller vil det ud som "almindelig" download.
Avatar billede woodydrn Nybegynder
13. januar 2003 - 16:18 #11
Tja, du kunne jo gemme $HTTP_REFERER så du kunne se hvor den kom fra, så som regin skriver sende en header("location: ".$HTTP_REFERER);
Avatar billede Slettet bruger
13. januar 2003 - 16:24 #12
$HTTP_REFERER er bare ikke sikker altid..... (kommer an på browser mm.)

Tror nedenstående er mere brugbart!?

header("Location:files/".$fileinfo[filename]);
echo "<a href="java script:window.history.back();">Tilbage</a>";
Avatar billede woodydrn Nybegynder
13. januar 2003 - 16:34 #13
Eller ville $PHP_SELF også kunne bruges til tilbage knappen
Avatar billede riversen Nybegynder
13. januar 2003 - 19:06 #14
man skal jo helst ikke navigere tilbage bare fordi man skal hente en fil...stødte på www.ljweb.dk hvor det fungere umiddelbart som almindelig link...jeg kan dog se han bruger en download.php hvor han sender id..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

HusCompagniet A/S

Senior data engineer

Capgemini Danmark A/S

AI/Data Engineer

Capgemini Danmark A/S

Microsoft AI Solution Architect

Capgemini Danmark A/S

Java Engineer