Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » Dateien direkt downloaden Antworten
Dateien direkt downloaden

JKidd
Pixelschubser


Beiträge: 2


Hi

zugegeben ich kenne mich nicht sehr mit php aus und http, würde aber gerne wissen, wie ich Dateien direkt von meiner Seite runterladen kann ohne das sie im Browser angezeigt werden. Es geht vorallem um Text Dateien (Endung *.txt oder *.doc).

Wäre echt wichtig ;)


JKidd

  Profil   E-Mail   Editieren   Zitieren

HoRnominatoR
Mausakrobat


Beiträge: 165


tools > preferences > file types > [_] hide file types opened with opera > .txt > edit > [X] show download dialog

---
get OPERA for free

  Profil   E-Mail   Website   Editieren   Zitieren

JKidd
Pixelschubser


Beiträge: 2


Danke für die Antwort, ich meinte es aber für meine kleine Seite damit meine Txt Dateien, wenn man sie runterladen will nicht immer angezeigt bekommt.

JKidd

  Profil   E-Mail   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


zippen... alles andere kann nen browser umgehen, wenn er richtg (oder falsch) eingestellt ist.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

Herr_Zatacke
Otto-Normal-Poster


Beiträge: 90


languitar schrieb am 28.06.2005 23:54
zippen... alles andere kann nen browser umgehen, wenn er richtg (oder falsch) eingestellt ist.

Oder anders gesagt: lass doch deine Besucher selbst enstscheiden, wie sie was sehen wollen.

---
wer and'ren eine bratwurst brät, der hat ein bratwurstbratgerät...

  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Damit der Browser auch "darstellbare" Daten zum Download anbietet, muss man ihm einige HTTP-Header schicken. Leider ist das je nach Browser leicht verschieden:

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23: 
24: 
25: 
26: 
27:
<?php
function download_headers($filename) {
  $agentstr = getenv('HTTP_USER_AGENT');
  if (eregi('opera', $agentstr)) {
    $agent = 'OPERA';
  } elseif (eregi('msie', $agentstr)) {
    $agent = 'IE';
  } else {
    $agent = 'STD';
  }
  $mime_type = ($agent == 'IE' || $agent == 'OPERA')
    ? 'application/octetstream'
    : 'application/octet-stream';

  header('Content-Type: ' . $mime_type);
  if ($agent == 'IE') {
    header('Content-Disposition: inline; filename="'.$filename.'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
  } else {
    header('Content-Disposition: attachment; filename="'.$filename.'"');
    header('Expires: 0');
    header('Pragma: no-cache');
  }
}
?> 


Nach dem Aufruf dieser Funktion, kann man dann die eigentlichen Daten der Datei ausgeben.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


ist aber auch nicht hunderprozentig sicher, dass es funktioniert...

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Der Download sollte immer angeworfen werden, mit dem Dateinamen habe ich recht selten noch Probleme bekommen. Diese kann man anscheinend nur mit einem URL-Rewrite komplett ausschließen.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
 

Antworten
Nach oben