Ik heb op mijn website een download.php bestand, en de bedoeling is dat deze het aantal downloaders telt, en daarna meteen redirect naar de eigenlijke download.
Als je in internet explorer normaal een url ingeeft die naar een .exe verwijst, krijg je automatisch zo een kadertje waarin je kan kiezen om het bestand te bewaren, of om het uit te voeren.
Via mijn download script krijg ik echter de inhoud te zien van die exe, wat natuurlijk niet erg nuttig is.
De reden dat dit gebeurd is denk ik omdat de .exe op een andere server staat als de .php, want als ik redirect naar een bestand op dezelfde server gaat het wel goed.
De reden dat het bestand op een andere server staat is om wat bandbreedte te sparen op de eerste server.
Normaal deed ik de redirects gewoon via
Verder heb ik ook al geprobeerd met een http refresh:
Dit is uiteraard minder optimaal omdat je dan eerst een andere pagina te zien krijgt, en bovendien geeft dit hetzelfde probleem.
Tenslotte vind ik voor redirects op internet nog vaak deze oplossing:
Deze code werkt goed, maar maakt de mirror nutteloos, vermits dit ook volume veroorzaakt voor de server waarop het script draait.
Vroeger werkte de 'header' methode trouwens wel, maar sinds Internet Explorer 6 met SP2 niet meer.
In mozilla lukte het trouwens ook al niet, en dus gebruikte ik een browser check zodat enkel mozilla gebruikers de 'readfile' methode kregen.
Iemand een ander idee om dit probleem op te lossen?
Als je in internet explorer normaal een url ingeeft die naar een .exe verwijst, krijg je automatisch zo een kadertje waarin je kan kiezen om het bestand te bewaren, of om het uit te voeren.
Via mijn download script krijg ik echter de inhoud te zien van die exe, wat natuurlijk niet erg nuttig is.
De reden dat dit gebeurd is denk ik omdat de .exe op een andere server staat als de .php, want als ik redirect naar een bestand op dezelfde server gaat het wel goed.
De reden dat het bestand op een andere server staat is om wat bandbreedte te sparen op de eerste server.
Normaal deed ik de redirects gewoon via
PHP:
1
| header("Location: http://mediacentrum.esstec.be/downloads/adion/djDecks065.exe"); |
Verder heb ik ook al geprobeerd met een http refresh:
HTML:
1
2
| <meta http-equiv="refresh" content="1; URL=http://mediacentrum.esstec.be/downloads/adion/djDecks065.exe"> |
Dit is uiteraard minder optimaal omdat je dan eerst een andere pagina te zien krijgt, en bovendien geeft dit hetzelfde probleem.
Tenslotte vind ik voor redirects op internet nog vaak deze oplossing:
PHP:
1
2
3
4
5
| header("Content-type: application/x-download"); header("Content-Disposition: attachment; filename=djDecks065.exe;"); header("Accept-Ranges: bytes"); header("Content-Length: 3223746"); @readfile("http://mediacentrum.esstec.be/downloads/adion/djDecks065.exe"); |
Deze code werkt goed, maar maakt de mirror nutteloos, vermits dit ook volume veroorzaakt voor de server waarop het script draait.
Vroeger werkte de 'header' methode trouwens wel, maar sinds Internet Explorer 6 met SP2 niet meer.
In mozilla lukte het trouwens ook al niet, en dus gebruikte ik een browser check zodat enkel mozilla gebruikers de 'readfile' methode kregen.
Iemand een ander idee om dit probleem op te lossen?
[ Voor 4% gewijzigd door Adion op 26-08-2004 11:48 ]