Frage

Ich habe ein Drupal -Modul erstellt, in dem einige Berichterstattungsdaten angezeigt werden. Ich möchte eine Option einfügen, mit der ein Benutzer die Seite angezeigt wird, um Daten als TXT- oder CSV -Datei in ihrem lokalen System zu speichern, aber ich stehe auf folgende Probleme:

  1. So geben Sie ein lokales Verzeichnis an, um auf zu speichern.
  2. So speichern Sie die Daten tatsächlich im Verzeichnis.

Ich habe die Drupal -API -Dokumentation für Formulare durchlesen. Es gibt einen "Datei" Eingabetyp, der es einem Benutzer ermöglicht, sein System zu durchsuchen und einen Speicherort auszuwählen, von dem er hochladen kann. Ich habe mir auch die Funktion file_save_data () angesehen, aber es scheint, dass Daten nur im Drupal -Site -Verzeichnis gespeichert werden.

Jede Hilfe wäre sehr geschätzt.

War es hilfreich?

Lösung

So geben Sie ein lokales Verzeichnis an, um auf zu speichern.

Du kannst nicht. Der Browser des Benutzers speichert Ihre Dateien entweder im Standard -Download -Verzeichnis des Browsers oder fordert den Benutzer auf, einen Speicherort auszuwählen. Wenn eine Website auswählen kann, bei der eine Datei gespeichert wird, ist ein wichtiges Sicherheitsloch - sie könnten Desktop -Verknüpfungen zu Viren, Startelemente usw. hinzufügen, usw.

Andere Tipps

Das hat für mich funktioniert:

$file = file_save_data($data, $dest, $replace = FILE_EXISTS_RENAME); 
drupal_set_header($header = "Content-type: text");
drupal_set_header($header = "Content-Disposition: attachment; filename=$file.xls"); 
readfile($file);  
die(); 

Der Die () muss dort hineingehen, sonst wird die Seite HTML an die Datei beigefügt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top