PHP dateidownload mit php

adblue

Well-known member
24 Juli 2009
57
2
hi

ich versuche gerade einen dateidownload umzusetzen:

über php versuche ich es über den header:

PHP:
<?php
$datei = '123.exe';
$filesize = filesize($dir.$datei);

header("Content-Type: application/octet-stream"); 
header("Content-Length: $filesize");
	
header('Content-Disposition: attachment; filename=name.exe');
	readfile($dir.$datei);
	
?>


ist das sinnvoll? wie würdet ihr das machen?
 
Ich würde mit der ZipArchive Klasse eine Zip Datei erstellen und die zum Download anbieten. ;)
 
hi danke

zip file ist zu umständlich. der user soll sofort die richtige datei haben.


das beispiel von: https://php.net/manual/en/function.readfile.php

geht auch nicht richtig, oder?

PHP:
<?php
$file = 'monkey.gif';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
?>
 
es kommen nur komische symbole und zeichen und das seitenweise ...

damits geht aber jetzt:

PHP:
<?PHP
 // Define the path to file
 $file = 'ryboe_tag_cloud.zip';
 
 if(!file)
 {
     // File doesn't exist, output error
     die('file not found');
 }
 else
 {
     // Set headers
     header("Cache-Control: public");
     header("Content-Description: File Transfer");
     header("Content-Disposition: attachment; filename=$file");
     header("Content-Type: application/zip");
     header("Content-Transfer-Encoding: binary");
    
     // Read the file from disk
     readfile($file);
 }
 ?>