Jag har skrivit ett downloadscript (PHP/mySQL)som kollar referer och räknar antal klicks (downloads) på varje fil i databasen.
När filen skall hämtas använder jag en vanlig header ("Location: sökväg/fil.zip")
Scriptet fungerar mycket bra, men det som irriterar mig är att program som GetRight och Go!Zilla inte känner av nedladdningen, utan alla nedladdningar startar med Windows egen lilla "nedladdare" - och den klarar ju inte att återuppta brutna downloads.
Dock är det en bra fråga Niklasson ställer - att räkna klick går väl inte om man direktlänkar .zip-filen, och jag blir alltid irriterad när GetRight inte körs igång.
Typ.
1. Kolla referrer och addera 1 til din räknare.
2. Skicka korrekt header typ: header("Content-Type: application/zip"); eller header("Content-Type: application/octet-stream"); eller vad det nu skall vara för typ av fil.
3. Skicka filen till klienten med readfile().
Vet inte om det fungerar, men tycker att det borde göra det... Eventellt får du väl skicka några fler headers...
SVAR B)
Hmm, det skall fungera som du gjort. Gör jag en HTTP GET på filen links_1.2.zip så skickar din server en "redirect" som ser ut så här:
HTTP/1.1 302 Found
Date: Wed, 06 Jun 2001 22:21:01 GMT
Server: Apache/1.3.12 Cobalt (Unix) mod_ssl/2.6.4 OpenSSL/0.9.5a PHP/4.0.3pl1 mod_
auth_pam/1.0a FrontPage/4.0.4.3 mod_perl/1.24
Location: [url="http://www.niklasson.net/php/scripts/links_1.2.zip"]http://www.niklasson.net/php/scripts/links_1.2.zip[/url]
Connection: close
Content-Type: text/html; charset=iso-8859-1
så om du skickar headern:
header("Location: <A HREF="http://www.niklasson.net/php/scripts/links_1.2.zip");" TARGET=_blank>http://www.niklasson.net/php/scripts/links_1.2.zip");</A>
så ser jag inte varför inte GetRight skulle starta, om det nu brukar göra det när du laddar ner tex .zip filer. I annat fall är det väl bara att du skickar all info ovan, mha fler headers, då måste(?) det ju rimligen fungera...