PHP zwingen dateien downzuloaden

deepgreen

Erfahrenes Mitglied
folgendes problem:
im starcraft (computerspiel) kam man replays von den spielen speichern, die haben die endung *.REP, das problem liegt jetzt beim downloaden von solchen files.

der IE versucht es downzuloaden, was er nicht kennt, sprich ein download-fenster erscheint, bei Oper, Mozilla, Netscape & co wird versucht sowas anzuzeigen.

meine frage:
wie kann ich php dazu verführen, das er ein download-fenster öffenet?
 
meineserachtens nein, will mich aber nicht festlegen. versuch es mal mit einer clientseitigen sprache wie javascript
 
Natürlich geht das. Man muss dazu mit der header()-Funktion dem Browser vorgaukeln, dass man z.B. ein Zip-File schickt und die Datei dann mit
PHP:
 readfile($filename);
auslesen und ausgeben. Das ist allerdings recht umständlich; ich frage mich, warum du die REP-Dateien nicht gleich komprimierst. Damit wäre erstens dein Problem gelöst und zweitens spart man Speicherplatz.

[edit]Dieses echo file($filename); war natürlich falsch. Konnte es aber leider nicht mehr verbessern.[/edit]
 
Zuletzt bearbeitet:
einmal danke für die hinweise, ich werds mir anschauen obs funktioniert.

zippen oder dergleichen ist mehr oder weniger sinnlos weil die dateien im normalfall weniger als 100 KB sind und für einen user es umständlich das ganze wieder zu entzippen und an die richtige stelle zu kopieren...
 
vielleicht braucht es der eine oder andere.

so einfach aber so wirksam:

.htaccess (datei anlegen mit folgenden code)

Code:
<FilesMatch "\.(rep|REP)$" >
ForceType application/octet-stream
</FilesMatch>
 
Daran hätte ich auch gedacht, aber wenn man es nur mit PHP lösen will, geht´s auch über die header()-Funktion. In ähnlicher Form:
PHP:
<?php
header("Content-Type: application/octet-stream\nLocation: $file");
?>
 

Neue Beiträge

Zurück