[PHP] file-upload venster forceren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 21-08 15:00
Ik heb het volgende (slordige) downloadscript

PHP:
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
28
29
30
$basedir = "../files/";
if ($_GET['filename'])
{
 $saveas = basename($_GET['filename']);
 $fpath = $basedir . $saveas;
 $name = $saveas;
 send_file($name);
}

function send_file($name) {
 $status = FALSE;
 $path = "../files/".$name;
 if (!is_file($path) or connection_status()!=0) return(FALSE);
 header("Content-type: application/x-octet-stream");
 header("Content-Disposition: inline; filename=\"".$name."\"");
 header("Content-length: ".(string)(filesize($path)));
 header("Expires: ".gmdate("D, d M Y H:i:s", mktime(date("H")+2, date("i"), date("s"), date("m"), date("d"), date("Y")))." GMT");
 header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
 header("Cache-Control: no-cache, must-revalidate");
 header("Pragma: no-cache");
 if ($file = fopen($path, 'rb')) {
   while(!feof($file) and (connection_status()==0)) {
     print(fread($file, 1024*8));
    flush();
   }
   $status = (connection_status()==0);
  fclose($file);
 }
 return($status);
}


Dit werkt goed, behalve als "bevestigen bij openen" uit staat bij bestandstypen, dan wordt hij dus meteen geopend, is er een header ofzo die de gebruiker forceert het bestand te downloaden?

[ Voor 13% gewijzigd door Helmet op 28-03-2003 09:11 ]

Icons are overrated


Acties:
  • 0 Henk 'm!

  • BHR
  • Registratie: Februari 2002
  • Laatst online: 17-09 21:58

BHR

Ik dacht dat
<?php
Headaer('Content-dispostion: attachment');
?>

in plaats van 'inline' de truc doet.

No amount of key presses will shut off the Random Bug Generator


Acties:
  • 0 Henk 'm!

  • m33p
  • Registratie: September 2002
  • Laatst online: 05-09 15:26
Gevonden op SiteMasters.be:
PHP:
1
2
3
header("Content-type: application/octet-stream"); //header 
header("Content-Disposition: attachment; filename=" . $_GET['bestand']);  //header 
@readfile("pad/".$_GET['bestand']); //file selecteren en box geven. 

Acties:
  • 0 Henk 'm!

  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 21-08 15:00
Onder internet explorer werkt de volgende code perfect,

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$basedir = "../files/";
if ($_GET['filename'])
{
 $saveas = basename($_GET['filename']);
 $fpath = $basedir . $saveas;
 send_file($saveas,$basedir);
}

function send_file($name,$basedir) {
 $status = FALSE;
 $path = $basedir . $name;
 if (!is_file($path) or connection_status()!=0) return(FALSE);
 header("Content-type: application/x-octet-stream");
 header("Content-Disposition: attachment; filename=" . $name);
 header("Content-length: ".(string)(filesize($path)));
 header("Expires: ".gmdate("D, d M Y H:i:s", mktime(date("H")+2, date("i"), date("s"), date("m"), date("d"), date("Y")))." GMT");
 header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
 header("Cache-Control: no-cache, must-revalidate");
 header("Pragma: no-cache");
 readfile($path);
}


Maar netscape/mozilla wil het bestand opslaan als een .php (x-octet-stream) en niet als de bestandsextentie waarin het eigenlijk opgeslagen moet worden :/

[ Voor 26% gewijzigd door Helmet op 28-03-2003 11:03 . Reden: mmz, [code type=php] werkt niet :p ]

Icons are overrated


Acties:
  • 0 Henk 'm!

  • Naj_Geetsrev
  • Registratie: Oktober 2002
  • Laatst online: 21-07 13:18
PHP:
1
2
header("Content-type: application/force-download");
header("Content-Disposition: filename=backup.bck");


Werkt volgens mij altijd.

[ Voor 15% gewijzigd door Naj_Geetsrev op 28-03-2003 11:08 ]


Acties:
  • 0 Henk 'm!

  • beetle71
  • Registratie: Februari 2003
  • Laatst online: 09-09 15:24
Helmet schreef:
Maar netscape/mozilla wil het bestand opslaan als een .php (x-octet-stream) en niet als de bestandsextentie waarin het eigenlijk opgeslagen moet worden
Om dat probleempje te verhelpen gebruik een / ipv een ?

dus
www.domein.nl/downloader.php/filename=tekst.txt
ipv
www.domein.nl/downloader.php?filename=tekst.txt

dan werkt het in mozilla/netscape wel. (en ook nog steeds in IE)
vraag me niet waarom, maar het werkt.

[ Voor 3% gewijzigd door beetle71 op 28-03-2003 13:02 ]

Pagina: 1