【发布时间】:2011-06-24 15:42:35
【问题描述】:
我有一个网页,将用于使用 perl 脚本创建 KML 文件。我希望用户将一些数据添加到将在我的 perl 脚本中使用的表单中。提交表单后,它将运行脚本,创建一个 kml 文件,然后提示用户保存文件。我不确定的唯一部分是如何让用户在脚本创建 KML 后保存文件。我是否有 perl 脚本提示下载或使用 HTML 页面上的某些内容提示下载。我不确定最好的方法。
【问题讨论】:
我有一个网页,将用于使用 perl 脚本创建 KML 文件。我希望用户将一些数据添加到将在我的 perl 脚本中使用的表单中。提交表单后,它将运行脚本,创建一个 kml 文件,然后提示用户保存文件。我不确定的唯一部分是如何让用户在脚本创建 KML 后保存文件。我是否有 perl 脚本提示下载或使用 HTML 页面上的某些内容提示下载。我不确定最好的方法。
【问题讨论】:
如果您有告诉服务器构建 KML 的链接或表单,则只需正常生成 KML 并将其与一些额外的 HTTP 标头一起发送回浏览器。你想要的标题是:
Content-disposition 设置为 attachment;filename=whatever.kml 其中“whatever.kml”是您希望调用的文件。Content-type 设置为 application/vnd.google-earth.kml+xml。Content-disposition 应该告诉浏览器下载 KML 而不是尝试处理它。
所以 Perl 脚本会提示浏览器提示下载。
【讨论】:
假设 kml 文件的内容在 $kml 中,那么您需要执行以下操作:
use CGI;
my $cgi = new CGI;
print $cgi->header('-Content-disposition' => 'attachment;filename=kml.xml',
'-Content-type' => 'application/vnd.google-earth.kml+xml');
print $kml;
【讨论】: