![]() |
[PHP] HEADER Downloadweiterleiter einer Datei
Hallo Leute,
ich habe ein kleines Problem: Wenn jemand auf meine Website geht und z.b. ein Programm runterladen möchte dann ist z.b. das Archiv einer RAR-Datei zerstört bzw. man läd nur 0 KB runter. Damit der User das Programm erhält muss er natürlich auf einen Link klicken. Dieser Link führt dann zu 'download.php'. Über get erhalte ich dann den Namen der Datei:
Delphi-Quellcode:
<?php
[...] $file = 'prog/'; //Pfad der Datei $file .= $_GET['prog']; // z.b. hallo.rar // Dateityp header( 'Content-type: application/octet-stream' ); // Größe der Datei header( 'Content-Length: ' . filesize( $file ) ); // Dateiname $dateiname = basename( $file ); header( 'Content-Disposition: attachment; filename="' . $dateiname . '"' ); // Ausgeben der Datei readfile( $file ); } Hab ich dort einen Fehler gemacht? Ich sehe es nicht... |
Re: [PHP] HEADER Downloadweiterleiter einer Datei
Hi,
ich kann dir ja mal zeigen, wie ich es mache:
Code:
Die Funktion get_mime_type() ist diese:
$filename = '...';
$filename = $config_main['root'] . $filename; // absoluter Pfad $file_size = filesize($filename); header('Content-Type: ' . get_mime_type()); header('Content-Disposition: attachment; filename=' . basename($config_main['root'] . $filename)); header('Content-Length: ' . $file_size); readfile($config_main['root'] . $filename);
Code:
Grüße, Matze
// get mime type for the different browsers
function get_mime_type() { $agent = $_SERVER['HTTP_USER_AGENT']; if (ereg('Opera(/| )([0-9].[0-9]{1,2})', $agent)) { $return = 'application/octetstream'; } else if (ereg('MSIE ([0-9].[0-9]{1,2})', $agent)) { $return = 'application/octetstream'; } else { $return = 'application/octet-stream'; } return $return; } |
Re: [PHP] HEADER Downloadweiterleiter einer Datei
Zitat:
|
Re: [PHP] HEADER Downloadweiterleiter einer Datei
Zitat:
Greetz alcaeus |
Re: [PHP] HEADER Downloadweiterleiter einer Datei
Zitat:
Also entweder ID oder eine sichere Parameter-Prüfung (z.b. nur [\.a-zA-Z0-9_-] als erlaubte Zeichen) - ersteres ist aber schöner und sicherer. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz