1

我想将 svg 从 d3 图表导出到 .svg 文件,而不需要用户进行任何交互。我正在使用基于这个很好的例子的代码:

http://d3export.cancan.cshl.edu/

但是服务器端脚本对我来说是新的,当我尝试使用我内置的 python CGIHTTPServer 运行示例代码时,我得到“错误代码 501。消息:只能 POST 到 CGI 脚本。错误代码解释:501 = 服务器不支持这次手术。”

我的问题是:python CGI 服务器是否应该能够根据此示例(下面的 perl 代码)处理 svg 文件的下载?如果没有,还有其他简单的替代方法来测试吗?

谢谢!嘉莉

download.pl 看起来像这样:

use strict; 
use warnings;
use CGI qw/:standard/;
use CGI::Carp qw/fatalsToBrowser/;
use autodie qw(:all);
use File::Temp qw/tempfile/;
use File::Slurp qw/read_file write_file/;

print header(-type=>"image/svg+xml",
     -attachment=>"d3js_export_demo.svg");    
print $data;
exit(0);

** 更新 ** 我没有让上面的代码使用我的本地 python CGI 服务器(CGIHTTPServer)工作。我确实得到了在远程服务器上工作的相同代码的更简单版本(见下文)。这个版本也不能在我的本地 CGIHTTPServer 上运行,所以现在我只能使用远程服务器进行开发。

#!/usr/bin/perl

use CGI qw/:standard/;

my $counter = param('num');
# input validation
my $data = param('data')
or die "Missing 'data' parameter";

print header(-type => "image/svg+xml",
-attachment => "d3demo$counter.svg");
print $data;
exit(0);
4

0 回答 0