Ale*_*lds 0 html browser perl user-interface cgi
我有以下隐藏的形式:
<form id='export_svg_container_single_form'
action='exportSVG.pl'
method='post'
target='_blank'
style='display:none;'>
<input type='text'
id='export_svg_container_single_form_data'
name='export_svg_data'
style=';' />
</form>
Run Code Online (Sandbox Code Playgroud)
export_svg_data
在表单提交之前,字段值将填充SVG文档.
提交时,这将作用于以下简单的CGI脚本,用Perl编写:
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use CGI::Pretty qw/:standard/;
my $val = param('export_svg_data');
print "Content-Type:image/svg+xml\n";
print "Content-Disposition: inline\n";
print "Content-Description: File to download\n\n";
print $val;
Run Code Online (Sandbox Code Playgroud)
提交时,隐藏表单还会打开一个新选项卡并显示(在本例中)SVG文档.然后,最终用户可以将窗口保存到文件中.
相反,在提交表单时,我想要做的是让浏览器自动打开" 保存"或" 另存为"对话框,以便用户可以选择文件名并保存文档,而不是在浏览器窗口中呈现SVG.
我如何使用JavaScript或对CGI脚本进行适当的更改?(我想保持父表单页面不变,即打开新的选项卡或窗口,如果需要的话.)感谢您的建议.
为了再次澄清,我正在寻找一个解决方案,它会打开" 保存"对话框.我不希望脚本确定文件名并将其保存在任意位置,无需任何用户干预.
请Content-Disposition: attachment; filename="example.svg"
改用.