Toon posts:

Downloaden ipv openen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik zit met een klein probleempje. Ik heb een bestand (txt file) op men webserver staan, als ik dit bestand aanklik opent hij deze file gewoon als text in men browser.

Nu is men vraag hoe je dat doet dat hij deze file niet opent maar verstuurd als download.

Bedankt al.

Verwijderd

Rechtermuisknop -> Opslaan als :?

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 18:13
Als je met serverside scripting werkt kan je de header 'Content-type: application/octet-stream' meegeven. Dan wordt het bestand niet als zijnde bekend type herkend en volgt er (dus) een save-as-dialog.

Verwijderd

Maak d'r anders een ZIP van of laat mensen met de rechter muisknop d'r op klikken en "Save target as.." doen bijvoorbeeld. Ik ken geen browsers die .txt *niet* standaard openen. :)

Verwijderd

sjroorda schreef op 13 April 2003 @ 15:20:
Als je met serverside scripting werkt kan je de header 'Content-type: application/octet-stream' meegeven. Dan wordt het bestand niet als zijnde bekend type herkend en volgt er (dus) een save-as-dialog.
Wat heeft die header te maken met het al dan niet gebruiken van serverside-scripten?

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 21:20

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Verwijderd schreef op 13 April 2003 @ 15:27:
[...]

Wat heeft die header te maken met het al dan niet gebruiken van serverside-scripten?
Misschien omdat je in een txt-file geen headers mee kan geven en wil je dat dus doen wel hulp nodig hebt van andere bronnen :?

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • sjroorda
  • Registratie: December 2001
  • Laatst online: 18:13
Dit lijkt mij de enige manier om headers mee te geven wanneer je op een link klikt? Als het ook zonder kan, hoe?

Verwijderd

Prammenhanger schreef op 13 april 2003 @ 15:29:
[...]


Misschien omdat je in een txt-file geen headers mee kan geven en wil je dat dus doen wel hulp nodig hebt van andere bronnen :?
Ja ok, je hebt gelijk :) Ik zat eraan te denken die headers mee te geven aan de HTML-file waar de link in staat, maar dat schiet niet echt op. Beetje snel gelezen :z

[ Voor 21% gewijzigd door Verwijderd op 13-04-2003 15:30 ]


Verwijderd

Topicstarter
en hoe doe ik dan best met die header ? in een php file zetten en hoe link ik dan naar die file ?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Zoeken naar 'force download php'

* gorgi_19 vindt het weer veel te eng worden en klimt weer over de schutting heen....

[ Voor 35% gewijzigd door gorgi_19 op 13-04-2003 15:39 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • sjroorda
  • Registratie: December 2001
  • Laatst online: 18:13
Headers versturen (met 'Content-Disposition: attachment; filename=bestand.txt' kan je zelfs nog een voorgestelde bestandsnaam meegeven), txt-file inlezen en met 'echo' outputten naar gebruiker.

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 21:20

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

of gewoon een include() :)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • sjroorda
  • Registratie: December 2001
  • Laatst online: 18:13
Is idd stuk makkelijker, even niet aan gedacht :).

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Hier een voorbeeldje van hoe je het zou kunnen doen. Let wel op dat je dit niet klakkeloos overneemt want het is erg onveilig:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
    // gebruiksvoorbeeld: download.php?file=foo.txt
  $file_name = $HTTP_GET_VARS['file'];
  $fp = @fopen($file_name, "rb");
  if ($fp != NULL)    {
    header("Content-type:application/octetstream");
    header("Content-Disposition: inline; filename=\"$file_name\"");
    header("Content-length:".(string)(filesize($file_name)));
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: no-cache');
    header('Expires: 0');
    fpassthru($fp);
    fclose($fp);
  }
?>

  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 21:20

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Juist, zeer onveilig :)

Het opent namelijk de file die je in de url mee geeft (blaat.php?file=blaat), en daar kan men dus alles invullen, bijv. ook blaat.php?file=.htaccess of file=.htpasswd. Mocht je dus één bestand nodig hebben, verander $HTTP_GET_VARS['file'] dan voor "bestand.txt";, en daar gaat je veiligheidsprobleem :)

2 > raar schietspelletje @ sig :p

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


Verwijderd

Topicstarter
dank u..

2 : uw script werkt niet hier.. ofwel doe ik iets verkeerd, hij wilt wel downloaden maar dan geeft internet explorer een error dat de locatie niet klopt ofzo

  • sjroorda
  • Registratie: December 2001
  • Laatst online: 18:13
?file= in de url moet wel een bestaande file zijn???

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Ja, je moet dus als file een bestandsnaam invullen van een bestand dat in dezelfde directory staat als het script.
offtopic:
> prammenhanger: dat heet post-modern ;)

[ Voor 20% gewijzigd door 2 op 13-04-2003 19:59 ]

Pagina: 1