![]() |
Traffic sparen: Wie Datei-Download nur über die Website?
Moin zusammen,
mit einer htaccess-Datei dieses Inhalts verhindere ich, dass bestimmte Dateitypen direkt über den Browser heruntergeladen werden können:
Code:
Wie kann ich allgemein den Download über die Website ermöglichen? Muss ich da manuell irgendwie diverse Header senden oder wie macht man das?
<FilesMatch "\.(zip|pdf|doc|xls)$">
deny from all </FilesMatch> Ein schönes Wochenende wünscht Matze |
Re: Wie Datei-Download nur über die Website möglich?
Möchtest du den Download mittels PHP Realisieren?
Dann sieht der Downloader nicht wo sich die eigentliche Datei befindet. Damit kannst du selbst den Speed Einstellen |
Re: Wie Datei-Download nur über die Website möglich?
Hallo Claudio,
jupp, ich habe es vergessen zu erwähnen, das soll mit PHP ablaufen. Wie mache ich das denn genau? Da du es angesprochen hast: Die Geschwindigkeit möchte ich zwar nicht drosseln und ich bezweifel auch, dass das mit PHP geht, aber falls das gehen sollte, wäre es interessant zu wissen, wie so etwas realisierbar wäre. Aber wie gesagt, das brauche ich nicht. Grüße |
Re: Wie Datei-Download nur über die Website möglich?
Moin Matze,
wenn du die Datei mit readfile(), file_get_contents() oder fopen() anfasst, hat die htaccess gar keine Bedeutung. Diese greift nur bei der direkten Auslieferung durch den Indianer. Nehmen wir an (GAANZ unsicheres Beispiel), du erwartest an der URL nen File-Parameter:
Code:
Natuerlich musst du noch pruefen obs die Datei gibt, ob er drauf zugreifen gibt, usw. So koennte man naemlich auch ne PHP-Datei ziehn, und damit mein ich nicht den Code nach dem Ausfuehren. Also immer schoen brav mit IDs arbeiten oder so.
header('Content-Disposition: attachment');
header(...); // Die korrekten Header findest du bspw. im 0815-Attachment-MOD fuers phpBB readfile($_GET['file']); Greetz alcaeus |
Re: Wie Datei-Download nur über die Website möglich?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Andy,
danke für deine Antwort. Das ist das, was ich vermutet hatte. Ich muss es also manuell über diverse Header lösen. Ich bin mir nur nicht ganz sicher, ob PHP so konfiguriert ist, dass dies geht, denn in gewisser Weise stellt das öffnen von Dateien mit PHP ein Sicherheitsrisiko dar. Die Gültigkeit wird übrigens überprüft und zwar anhand eines Datei-Hashs (ich hoffe nur, dieser tritt nicht mal doppelt bei 2 verschiedenen Dateien auf). Im Endeffekt läuft's aber dann über eine ID ab, die beim ersten Eintragen in die DB erzeugt wird. Das unschöne ist eben auch, dass ich pro Dateityp einen anderen Header senden muss. Aber dann führt wohl kein anderer Weg dran vorbei. Ich teste mal, ob das funktioniert. Btw: Ich schaue da übrigens nicht in einem phpBB-Mod nach sondern auf ![]() Grüße Edit: Ich habe es nun so (nur lokal getestet):
Code:
Der Download-Dialog ist aber nicht ganz richtig, denn dieser stellt das Icon dar, mit dem eine html-Datei verknüpft ist und zeigt natürlich dann auch entsprechend die falsche Standardanwendung an (s. Anhang).
header('Content-Disposition: attachment; filename="..."');
header('Content-Type: application/pdf'); readfile(...); Lasse ich den Dateinamen (filename="...") übrigens weg, dann steht dort der Name der Datei, die im Browser aufgerufen wird (Bsp: id26.html). Das ist ein reiner Schönheitsfehler, denn die Datei wird korrekt heruntergeladen. Es wäre aber sinnvoll, wenn der Browser das auch richtig erkennen würde. Was ist daran noch falsch? |
Re: Wie Datei-Download nur über die Website möglich?
Hallo,
durch langes Herumprobieren hat sich das Problem nun erledigt. Nach readfile fehlte ein exit. Mit diesem geht alles einwandfrei, wieso auch immer. Grüße |
Re: Wie Datei-Download nur über die Website möglich?
Zitat:
Greetz alcaeus |
Re: Wie Datei-Download nur über die Website möglich?
Hallo
Geschwindigkeits Regelung mittels PHP Funktioniert einwandfrei... Ich benutze das selbst in eigenen Scripten Falls noch interesse Bestehen sollte bitte melde dich... |
Re: Wie Datei-Download nur über die Website möglich?
Zitat:
@Claudio: Das würde mich brennend interessieren, da ich mir nicht vorstellen kann, wie das gehen soll. Ich dachte immer, das muss direkt am Server konfiguriert werden (Bsp: Proxy). Da das nicht zum ursprünglichen Thema passte, habe ich den Thementitel geändert und nun passt auch das hier her. ;) |
Re: Traffic sparen: Wie Datei-Download nur über die Website?
Sehr gut...
Funktionieren tut das zu 100% Das Prinzip ist einfach. Das Script überträgt eine gewisse Anzahl an Bytes und macht dan einfach eine Pause. Und so kann man auf das KB Genau den Speed Regeln.... Das ist ein feine sache. Damit könnte man Registrierten Usern mehr Speed Bieten als nicht registrierten. Ich benutze das Script auf meine eigenen Filestore ![]() Hier nun das Script
Code:
Bei mir Funktioniert der Code....
$file = $row_download['file_Path']; // Datei aus Array laden
$speed = 5; // 8,5 kb/s download rate limit if(file_exists($file) && is_file($file)) { //Überprüfen ob Datei Existiert header("Cache-control: private"); header("Content-Type: application/octet-stream"); header("Content-Length: ".filesize($file)); header("Content-Disposition: filename=$file" . ""); flush(); $fd = fopen($file, "r"); while(!connection_aborted()){ while(!feof($fd)) { echo fread($fd, round($speed*1024)); flush(); sleep(1); } fclose ($fd); } } Viel Spass |
Re: Traffic sparen: Wie Datei-Download nur über die Website?
Hi,
das ist ja etwas simples. Danke für diese Info. Ich hätte nicht gedacht, dass das möglich so ist, da meines Wissens PHP-Skripte auch einem Timeout unterliegen, zumindest ist es meist so eingestellt. Wenn PHP nicht im Safe-Mode läuft, kann man das leicht unterbinden, doch ist dieser aktiv, dann bin ich mir nicht sicher, ob das auch bei sehr großen Dateien funktionieren würde. Ich beschränke die Geschwindigkeit jedoch vorerst nicht. Evtl. sperre ich den Download komplett für Gäste, mal schauen. ;) Grüße |
Re: Wie Datei-Download nur über die Website möglich?
Zitat:
Greetz alcaeus |
Re: Traffic sparen: Wie Datei-Download nur über die Website?
Was soll das Einschränken der Geschwindigkeit denn bitteschön an Traffic sparen? Es ist vielleicht weniegr Traffic zur gleichen Zeit, aber im Endeffekt ist es doch egal, wie lange die datei zum laden braucht. Ich gehe nicht davon aus, dass jemand über einen Monat lang eine Datei lädt :mrgreen:
Ich versteh generell nicht, was du eigentlich bezwecken oder verbieten willst. Willst du verhindern, dass jemand von woanders direkt auf den Download linkt? Dann könntest du den Referrer prüfen, allerdings kann man den natürlich auch fälschen. Download für Gäste sperren finde ich doof, weil ich,w enn ich was kurz testen will, keine Lust habe, mich irgendwo anmelden zu müssen, auf eine E-Mail zu warten, einen Link zu klicken, die Seite womöglich auch noch in die Cookiewhitelist aufzunehmen, mich einzuloggen, damit ich dann endlich mal die datei runterladen kann. Seiten, die das erzwingen habe ich üblicherweise innerhalb weniger Sekunden verlassen. [ot] Wie läuft eigentlich deine Umstellung auf UTF-8? Ich überarbeite nämlich gerade meine Webseite und möchte endlich weg von windows-1252. Kennst du vielleicht ein Programm, dass automatisch Dateien in UTF-8 (ohne BOM) konvertiert? [/ot] |
Re: Traffic sparen: Wie Datei-Download nur über die Website?
Zitat:
Zitat:
Zitat:
Zitat:
![]() |
Re: Traffic sparen: Wie Datei-Download nur über die Website?
Zitat:
|
Re: Traffic sparen: Wie Datei-Download nur über die Website?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 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