我有这个:
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。相反,我希望浏览器下载该文件。我能做什么?
发布于 2011-05-05 14:28:35
尝试在Try服务器端的http头中使用content-disposition。这甚至适用于.htaccess。
据我所知,您发送电子邮件的方式与浏览器中的保存/显示选项关系不大。
发布于 2011-05-05 10:51:27
不要使用系统sendmail
命令。相反,请使用MIME::Lite模块。
他们有一个coding example,几乎可以做你想做的事情。
这样,您就不需要依赖可能工作也可能不工作的外部命令(取决于系统及其配置)。
发布于 2011-05-05 04:41:06
您可以通过脚本输出CSV,该脚本会向浏览器发送第一个mime报头"application/octet-stream“,而不是apache(或使用的服务器)发送的默认MIME type。您还可以通过将应用程序扩展名与“.csv /octet-stream”mime类型相关联,将服务器配置为自己发送报头。另请参阅The apache docs
https://stackoverflow.com/questions/5889494
复制相似问题