2009-06-28 7 views
2

Wie kann ich Dateien in Drupal bereitstellen, ohne einen Link freizugeben, der möglicherweise wiederverwendet wird? Diese Art von Dingen wird normalerweise von Postbacks in .NET behandelt, aber ich kann keine Dokumentation finden, um es in Drupal zu erreichen.Wie können Dateien in Drupal ohne Verwendung von Links geliefert werden?

Ziel ist es, einem Benutzer eine bestimmte Datei genau einmal zu geben, wenn sie eine Reihe von Schritten ausführen, die vom Modul definiert wurden. Einige der eCommerce-Module bieten einige Funktionen, um begrenzte Dateidownloads zu unterstützen, aber ich würde es vorziehen, keine komplette eCommerce-Lösung zu installieren, nur um eine Aufgabe zu erfüllen.

Vielen Dank im Voraus!

Antwort

2

Sie ein Modul schreiben, würde die einmalige URLs und melden Sie sich zu verwalten, wenn sie zugegriffen wurde.

Das Modul würde die PHP fread()-Funktion verwenden, um die Datei von einem privaten Speicherort aus bereitzustellen.

+0

Ich habe einen kleinen Proof-of-Concept auf Basis deines Vorschlags zusammengestellt, und die Dinge funktionieren bisher wie ein Zauber. Vielen Dank! – anschauung

0

Sie können es auf der Web-Server-Ebene tun, sparen auf den Drupal-Code + db laden: zum Beispiel mit lighttpd können Sie das Modul mod-trigger-b4-dl verwenden, begrenzte Gültigkeit URLs, entweder mit einem Interstitial oder ein Bestätigungs-Callback in Drupal.

Siehe mod trigger b4 dl docs für Details

+0

Interessant - danke! Gibt es eine entsprechende Funktion in Apache, die Sie kennen? – anschauung

+0

Es könnte ein Lichttpd exklusiv sein, fürchte ich. Beachten Sie, dass es nicht schwierig ist, beide Server zu kombinieren. – FGM