[php/http headers] Naam van file om te downloaden veranderen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb op dit moment een systeempje dat ervoor moet zorgen dat alle downloads uit een bepaalde folder van mijn server geregistreerd worden. De folder in kwestie heb ik voor downloads geblokkeerd met .htaccess, en mensen kunnen files downloaden via een php script.

Een beetje versimpeld komt het hierop neer (code voor registratie en dergelijke is hier voor het gemak weggelaten, aangezien die geen probleem vormt. het script heet "download.php"):

code:
1
2
3
4
<?php
header("Content-Type: application/x-zip\n");
include("zipfiles/blegh.zip");
?>


Mijn probleem is dat als mensen dit downloaden, ze in het "save as" dialog "download.php" te zien krijgen in plaats van "blegh.zip".
Nu zou je zeggen dat dit niet een erg groot probleem is (simpelweg even naam aanpassen zou je zeggen), maar helaas blijkt het voor sommige mensen nogal moeilijk te vatten te zijn en dus krijg ik dagelijks emails van mensen die vragen wat ze met die "download.php" file moeten. |:( Daarom wilde ik vragen of iemand een manier weet om ervoor te zorgen dat de standaardnaam van de file voor de user veranderd wordt.

Bij voorbaat dank!

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18-09 17:06

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 kan zich niet voorstellen dat het niet te vinden is met Google..

Zie bijvoorbeeld:
http://bugs.php.net/bug.php?id=13601
Zoekwoorden met Google: PHP Download Filename Header

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Je hebt twee opties:
content-disposition of mutiviews.
Bij multiview link je naar /pagina.php/blegh.zip?para1, dit werkt alleen op apache als apache hiervoor geconfigureerd is.

Voor content-disposition moet je de volgende code eens bestuderen
PHP:
1
2
3
4
if(preg_match("/MSIE 5.5/", $HTTP_USER_AGENT))
header("Content-Disposition: filename=$userfile");  
else
header("Content-Disposition: attachment; filename=$userfile");

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik had gezocht met Google, maar blijkbaar niet op de goede zoektermen. Bedankt! :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
kvdveer schreef op 10 February 2003 @ 10:47:
Voor content-disposition moet je de volgende code eens bestuderen
PHP:
1
2
3
4
if(preg_match("/MSIE 5.5/", $HTTP_USER_AGENT))
header("Content-Disposition: filename=$userfile");  
else
header("Content-Disposition: attachment; filename=$userfile");
Nog even een vraagje:
header("Content-Disposition: filename=$thefile");
Geldt die enkel en alleen voor MSIE 5.5, of issie ook van toepassing bij andere versies?

Thanx!