Perl,Unix Email:在浏览器问题中下载csv

时间:2011-05-04 20:32:06

标签: perl hyperlink

我有这个:

    open(MAIL,"|/usr/sbin/sendmail -t");
       ## Mail Header
       print MAIL "To: $GLOB_OPT{email}\n";
       print MAIL "From: $GLOB_OPT{from}\n";
       print MAIL "Subject: $GLOB_OPT{sub}\n";
       print MAIL qq|Content-Type: text/html; charset=us-ascii\n|;
       print MAIL qq|Content-Transfer-Encoding: 7bit\n|;
       print MAIL qq|MIME-Version: 1.0\n\n|;
       print MAIL qq|<h3>Download File :</h3><br>|;
       print MAIL qq|<a href="$GLOB_OPT{html}" rel="nofollow" target="_blank">Click Here</a>|;
    close(MAIL);

我想将超链接发送给用户,以便他们可以在$ GLOB_OPT {html}路径中下载csv文件。

当我打开电子邮件中的链接时,它会在浏览器中打开csv。我想要浏览器下载文件。我该怎么办?

3 个答案:

答案 0 :(得分:2)

尝试在网络服务器端的http标头中使用content-disposition。这甚至适用于.htaccess

据我了解,您发送电子邮件的方式与浏览器中的保存/显示选项几乎没有关系。

答案 1 :(得分:1)

不要使用系统sendmail命令。而是使用MIME::Lite模块。

他们有一个coding example几乎完全符合你的要求。

这样,您不依赖于可能有效或无效的外部命令(取决于系统及其配置)。

答案 2 :(得分:0)

您可以通过脚本输出CSV,该脚本首先向浏览器发送mime-header“application / octet-stream”而不是默认值 apache(或使用过的服务器)发送的MIME type。您还可以将服务器配置为通过将.csv扩展名与“application / octet-stream”mime类型相关联来自行发送标头。 另见The apache docs