Perl将CGI文件重定向到;文件://“;地址

Perl将CGI文件重定向到;文件://“;地址,perl,redirect,location,cgi,Perl,Redirect,Location,Cgi,我是一个Perl程序员新手,所以请对我放松点。有没有办法远程重定向一个页面,从调用perl.cgi文件到另一个页面文件?用户将单击指向.cgi文件的链接。然后.cgi文件将用户重定向到“file://”位置。其目的是在记录单击计数后在另一台服务器中下载文件 下面的代码适用于“http://”地址,但如何使其适用于“file://”地址 #!C:\Strawberry\perl\bin use strict; use CGI; use CGI::Carp qw(fatalsToBrowser);

我是一个Perl程序员新手,所以请对我放松点。有没有办法远程重定向一个页面,从调用perl.cgi文件到另一个页面文件?用户将单击指向.cgi文件的链接。然后.cgi文件将用户重定向到“file://”位置。其目的是在记录单击计数后在另一台服务器中下载文件

下面的代码适用于“http://”地址,但如何使其适用于“file://”地址

#!C:\Strawberry\perl\bin

use strict;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
my $page = new CGI;
# print header and start the markup output

print "HTTP/1.0 200 OK\n";
print $page->header( "text/html" );
print $page->start_html( "CGI Environment" );

print "Hello world! ";
print "Press the Enter key to exit.\n";

my $url="file://location_of_file";
my $t=1; # time until redirect activates
print "<META HTTP-EQUIV=refresh CONTENT=\"$t;URL=$url\">\n";


print $page->end_html;

# end code
#!C:\草莓\perl\bin
严格使用;
使用CGI;
使用CGI::Carp qw(fatalsToBrowser);
my$page=新的CGI;
#打印标题并启动标记输出
打印“HTTP/1.0 200正常\n”;
打印$page->header(“文本/html”);
打印$page->start_html(“CGI环境”);
打印“你好,世界!”;
打印“按Enter键退出。\n”;
我的$url=”file://location_of_file";
我的$t=1;#重定向激活之前的时间
打印“\n”;
打印$page->end_html;
#结束代码

这是一个好方法吗?有更好的方法吗?请帮忙。提前谢谢你

出于安全原因,这是不允许的。所有浏览器(据我所知)都会拒绝从http://URL到file://URL的元重定向。同样的限制也适用于30x服务器重定向。有关详细信息,请参阅。

最有用的方法可能是使用“.url”文件(静态或动态生成),如中所述


否则,我担心您会被提升权限(强烈依赖浏览器)或玩浏览器扩展等所困扰。

如果您想打开服务器本地的文件,而不仅仅是使用
open
,有没有办法从Perl调用“file://”url。如果你想在客户机上打开一个文件,那么就不需要了。对我来说,你似乎不理解web是如何工作的,这与Perl无关。如果文件在服务器上,file://无论如何都无法导出,或者你说的服务器是指网络共享?