Avatar billede Slettet bruger
29. december 2006 - 12:56 Der er 8 kommentarer

Download af filer LIKE PDF, TXT, DOC ect.

Hej eksperter.
Hvordan laver jeg et script som gør at browseren gør at man kan downloade f.eks. en .txt fil, pdf fil, doc ect., frem for den viser dem i browseren?

Håber I forstår hvad jeg mener og at I kan hjælpe mig.
Avatar billede Slettet bruger
29. december 2006 - 12:58 #1
Jeg ved det er noget med headeren.
Dette kan måske brug.es lidt
$file = "test.doc";
header("Content-type: FILTYPE PÅ $file");
header("Content-Disposition: attachment; filename=$file");
Avatar billede Noone Nybegynder
29. december 2006 - 12:59 #2
Prøv at tilføje denne linje i toppen af scriptet:

header("Content-Type: application/octet-stream");

Det gør at browseren ikke aner hvilken type fil der er tale om, og dermed vil den præsentere brugeren for en download dialog.
Avatar billede Slettet bruger
29. december 2006 - 13:15 #3
okay jeg vil lige prøve af senere idag.
Avatar billede Slettet bruger
29. december 2006 - 13:20 #4
Og hvis det er .pdf skal man så gør noget specialt, eller kan man bare bruge samme metode?
Men hvor fortæller jeg hvad det er for en fil?
Avatar billede Slettet bruger
29. december 2006 - 13:20 #5
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=test.doc"); //???
Avatar billede Noone Nybegynder
29. december 2006 - 13:26 #6
Det ser ikke helt forkert ud. Så får du også det rigtige filnavn i "Save As" dialogen. (Eller på filen, hvis den gemmer uden at spørge om navn og dir)
Avatar billede Slettet bruger
29. december 2006 - 20:02 #7
Jo det var rigtigt som jeg skrev det.
Men kan man gøre sådan at den henter filen: 123.doc
men brugeren 'får' afvide den hedder '456.doc' så brugeren ikke lige kan regne ud hvad filen i virkeligheden hedder?
Avatar billede windcape Praktikant
29. december 2006 - 20:10 #8
application/octet-stream er til internet explorer :-) Rigtige browsere har nok i content-disposition: attatchment.

coldgate:

Du kan jo angive hvilket som helst filnavn, f.eks. lav en rand() eller lign. til at producere et falsk filnavn.

<?php
  header("Content-Type: application/octet-stream");
  header("Content-Disposition: attachment; filename=456.doc");
  readfile('123.doc');
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester