2

我有 Drupal 网站,我的用户无法再下载文件。(docx、xlsx 等)。在 firefox中,当用户单击链接下载文件时,页面会显示垃圾代码。

我在别处读到的解决方案是添加以下内容,但它没有用。相反,每次重新加载页面时,都会提示用户针对应用程序类型进行虚拟下载。

drupal_set_header('Content-type: application/octet-stream; charset=utf-8');

我有一个简单的模块,它有一个页面可以吐出文件的链接。在这个模块中,我将上述内容添加到 hook_init() 函数中。

垃圾代码截图

我以前从未遇到过这个问题,我不确定它为什么会开始。任何帮助当然将不胜感激。如果我在有人回复答案之前找到了解决方案,我会在此处发布以供将来参考。

4

2 回答 2

1

为您的 MIME 试一试:

drupal_set_header('Content-type: application/force-download');
于 2013-01-06T23:41:13.910 回答
0

发生这种情况是因为 MIME 类型设置不正确。您可以强制 Drupal 将其设置content-type header为适当的 MIME 类型,或者在服务器端进行设置。

我建议您在文件夹中的 .htaccess 文件中执行此操作(默认为站点/默认/文件)

只需将下面的代码放入 .htaccess 文件中(或者如果它不存在,您可以创建一个新的 .htaccess 文件)。

AddType  application/octet-stream  .doc .xls .pdf

请注意,hook_init() 会在每个正常页面请求时触发。永远不要在这个钩子中这样做,否则你最终会面临很多问题。

于 2013-01-07T05:26:28.670 回答