【问题标题】:Perl Redirect CGI File To A "file://" AddressPerl 将 CGI 文件重定向到“file://”地址
【发布时间】:2015-06-23 12:09:05
【问题描述】:

我是一个新手 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

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

【问题讨论】:

  • 如果文件在服务器上,file://无论如何都出不来,还是说服务器是网络共享?

标签: perl redirect location cgi


【解决方案1】:

出于安全原因,这是不允许的。所有浏览器(据我所知)都会拒绝从 http:// URL 到 file:// URL 的元重定向。同样的限制适用于 30x 服务器重定向。请参阅Redirect Restrictions section of the Browser Security Handbook 了解更多信息。

【讨论】:

  • 有没有办法从 Perl 调用 "file://" url?
  • 如果您想打开服务器本地的文件,而不仅仅是使用open。如果你想在客户端打开一个文件,那就不行。对我来说,您似乎不了解网络如何工作的概念,这与 Perl 无关。
【解决方案2】:

可能最有用的方法是使用“.url”文件(静态或动态生成),正如 JFish222's post 中很好解释的那样

否则,恐怕您会被提升权限(强烈依赖于浏览器)或玩浏览器扩展等所困。

【讨论】:

    猜你喜欢
    • 2010-12-19
    • 2011-08-25
    • 2012-02-29
    • 2019-10-18
    • 2012-05-18
    • 2017-01-30
    • 2012-12-23
    • 2017-08-27
    • 1970-01-01
    相关资源
    最近更新 更多