phpbar.de logo

Mailinglisten-Archive

[php] Download von Bildern

[php] Download von Bildern

php_(at)_phpcenter.de php_(at)_phpcenter.de
Fri, 7 Sep 01 14:57:22 +0200


haas_(at)_xmedia-publishing.de wrote on 07.09.2001 14:45 Uhr:

>Ich glaub, ich seh' den Wald vor lauter B=E4umen nicht!
>Das sind alles sehr hilfreiche Tips, aber irgendwie funzt es einfach =
nicht.

will wieder keiner code rausruecken? ;-)

try this one and have phun:

<?PHP
//session_cache_limiter('public');
// fuer besseres dl verhalten im msie 5.5, erst ab PHP 4.03
  if ($file) {
    $filename=3D"data/".basename($file);
    if ((file_exists($filename)) && ($fp=3Dfopen($filename, "r")) ) {
      if (stristr(getenv(HTTP_USER_AGENT), "MSIE")) {
	    $browser=3D"msie";
      }
      if ($browser=3D=3D"msie") {
//        header("Content-type: application/x-ms-download");
        header("Content-type: x-type/subtype\n");
//        header("Content-type: application/force-download");
        header("Content-disposition: =
attachment;filename=3D".basename($filename)."\n");
          } else {
        header("Content-type: x-octet-stream\n");
        header("Content-disposition: =
attachment;filename=3D".basename($filename)."\n");
        header("Content-description: JustThum-Generated Data\n");
      }
      header("Content-Transfer-Encoding: binary\n");  
//      header("Expires: Tue, 27 Jul 1997 10:30:00 GMT");
      header("Last-Modified:" . gmdate("D, d M Y H:i:s") . " GMT");
      header("Cache-Control: no-cache");
//      header("Cache-Control: post-check=3D0, pre-check=3D0");
      header("Content-length: ".filesize($filename)."\n");
      header("Pragma: no-cache");
      fpassthru($fp);
	  flush();
//      fclose($fp);
// nicht unbedingt noetig, da fpassthru bereits closed
    } else {
      header("Status: 404");
	  exit;
    }
  }
?>

du rufst das ganze als link auf: download.php?file=3Dsendme.gif

besser du uebergibst nur eine zahl und wandelst die erst im skript =
(array) in einen dateinamen.

probleme gibts hauptsaechlich im ie. fuer die version 5.5 gibts =
irgendwo ein patch (sonst funktioniert der dl nur, wenn du "rechte =
taste -> speichern unter" drueckst).

an den headern kannst du noch ein wenig basteln (je nach belieben).

hth

gruss uLi


php::bar PHP Wiki   -   Listenarchive