我创建了一个显示一些报告数据的 drupal 模块。我想包含一个选项,使查看页面的用户能够将数据保存为本地系统上的 txt 或 csv 文件,但我遇到了以下问题:
- 如何指定要保存到的本地目录。
- 如何实际将数据保存到目录中。
我已经阅读了表单的 drupal api 文档。有一个“文件”输入类型,允许用户浏览他们的系统并选择要上传的位置。我还查看了 file_save_data() 函数,但似乎数据只保存在 drupal 站点目录中。
任何帮助将不胜感激。
我创建了一个显示一些报告数据的 drupal 模块。我想包含一个选项,使查看页面的用户能够将数据保存为本地系统上的 txt 或 csv 文件,但我遇到了以下问题:
我已经阅读了表单的 drupal api 文档。有一个“文件”输入类型,允许用户浏览他们的系统并选择要上传的位置。我还查看了 file_save_data() 函数,但似乎数据只保存在 drupal 站点目录中。
任何帮助将不胜感激。
如何指定要保存到的本地目录。
你不能。用户的浏览器会将您的文件保存到浏览器的默认下载目录,或者会提示用户选择一个位置。让网站选择保存文件的位置将是一个主要的安全漏洞——他们可以创建病毒的桌面快捷方式、添加启动项等。
这对我有用:
$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 将被附加到文件中。