Download per PHP anbieten


klausi89

Erfahrenes Mitglied
Hallo ich möchte gerne auf meiner Webseite Dateien des Typs .h zum download anbieten, leider hab ich mal wieder Probleme das mit php zu realisieren.

Der download ordner liegt ausserhalb des www verzeichnisses.

Ich hoffe mir könnte dabei mal jemand helfen von euch?!

Danke im voraus.
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi,

Was hast du bisher probiert?
Wie sieht dein Code aus?
Gibt es Fehlermeldungen?
Welche PHP-Version?

Grüsse,
BK
 

klausi89

Erfahrenes Mitglied
Na bisher habe ich nur ein Script aus dem Internet

PHP:
// $download sei der Bezeichner für die zu ladende Datei
// etwa:
$download = $_GET['download'];

// Dieses Verzeichnis liegt außerhalb des Document Root und
// ist nicht per URL erreichbar.
$basedir = "/home/web/download";

// Übersetzung von Download-Bezeichner in Dateinamen.
$filelist = array(
  "file1" => "sechskant.h",
  "file2" => "noch eine download datei.h"
);

// Einbruchsversuch abfangen.
if (!isset($filelist[$download]))
  die("Datei $download nicht vorhanden.");

// Vertrauenswürdigen Dateinamen basteln.
$filename = sprintf("%s/%s", $basedir, $filelist[$download]);

// Passenden Datentyp erzeugen.
header("Content-Type: application/octet-stream");

// Passenden Dateinamen im Download-Requester vorgeben,
// z. B. den Original-Dateinamen
$save_as_name = basename($filelist[$download]);
header("Content-Disposition: attachment; filename=\"$save_as_name\"");

// Datei ausgeben.
readfile($filename);
aber da steht dann immer Datei nicht vorhanden

wie ich den genauen Pfad des Ordners herausfinde weiß ich nicht wirklich und der Mime Typ...was soll ich da eingeben? finde nichts über .h dateien da das nur von Heidenhain benutzt wird.

und wie soll das script mehrere dateien verarbeiten aber für jede datei eine eigene url zum aufruf nutzen.

Ich blick da nicht durch :-(

und ich verwende php7
 
Zuletzt bearbeitet: