[php] Redirect naar download geeft geen Save As optie

Pagina: 1
Acties:

Onderwerpen


  • Adion
  • Registratie: Januari 2001
  • Laatst online: 15:35
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
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 ]

VirtualDJ 2024 - Fast Image Resizer - Instagram


  • commeric
  • Registratie: November 2002
  • Laatst online: 14-08 22:32
Ik gebruike deze code om een download te save as-sen

PHP:
1
2
header( "Content-type: bad/type\r\nContent-Disposition: attachment; filename=". $filename ."\r\n\r\n"); 
readfile($filename);

  • Eegee
  • Registratie: Januari 2000
  • Laatst online: 20-09 23:09
commeric schreef op 26 augustus 2004 @ 19:10:
Ik gebruike deze code om een download te save as-sen

PHP:
1
2
3
header( "Content-type: bad/type\r\nContent-Disposition:
attachment; filename=". $filename ."\r\n\r\n"); 
readfile($filename);
ahem... lezen
Topicstarter heeft een mirror, wil dus niet streamen vanaf zijn eigen server en heeft dus aan jouw oplossing niets.

Adion, waarschijnlijk ligt het niet aan jouw script(kunsten), want ook als je hem direct opvraagt, krijg je de inhoud te zien. Ik denk dat de server een verkeerd MIME-type voor .exe geregistreerd heeft staan.

Edit: yep, ik krijg text/html terug van de server. Is nie goe... :)

[ Voor 13% gewijzigd door Eegee op 26-08-2004 19:25 ]


  • Adion
  • Registratie: Januari 2001
  • Laatst online: 15:35
ok, thanks, dan zal ik eens vragen of hier iets aan gedaan kan worden.
Betekend het dan dat Internet explorer voor sp2 gewoon de content-type negeerde indien de filenaam eindigde op .exe, en dat ie nu (correct) het MIME-type interpreteerd?

VirtualDJ 2024 - Fast Image Resizer - Instagram


Verwijderd

Adion schreef op 26 augustus 2004 @ 19:53:
ok, thanks, dan zal ik eens vragen of hier iets aan gedaan kan worden.
Betekend het dan dat Internet explorer voor sp2 gewoon de content-type negeerde indien de filenaam eindigde op .exe, en dat ie nu (correct) het MIME-type interpreteerd?
Dat zou op zich goed nieuws zijn, lost weer een zooi andere problemen op...