Сохранение данных из Drupal в локальный системный файл - PullRequest
0 голосов
/ 16 февраля 2010

Я создал модуль drupal, который отображает некоторые отчетные данные. Я хотел бы включить параметр, который позволяет пользователю, просматривающему страницу, сохранять данные в виде txt или csv-файла в своей локальной системе, но у меня возникают следующие проблемы:

  1. Как указать локальный каталог для сохранения.
  2. Как на самом деле сохранить данные в каталог.

Я прочитал документацию по друпал API для форм. Существует тип ввода «файл», который позволяет пользователю просматривать свою систему и выбирать место для загрузки. Я также посмотрел на функцию file_save_data (), но кажется, что данные сохраняются только в каталоге сайта drupal.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 16 февраля 2010

Как указать локальный каталог для сохранения.

Ты не можешь. Браузер пользователя сохранит ваши файлы либо в каталоге загрузок браузера по умолчанию, либо предложит пользователю выбрать местоположение. Разрешение веб-сайту выбирать, где файл будет сохранен, было бы серьезной дырой в безопасности - они могли создавать ярлыки вирусов на рабочем столе, добавлять элементы запуска и т. Д.

0 голосов
/ 27 февраля 2010

Это сработало для меня:

$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(); 

В него нужно войти die (), иначе HTML-страница будет добавлена ​​в файл.

...