2015-04-16 31 views
0

我是一位新手Perl程序員,所以請對我輕鬆一點。有什麼辦法可以遠程將頁面從調用perl.cgi文件重定向到另一個頁面文件嗎?用戶將點擊一個導致.cgi文件的鏈接。 .cgi文件然後將用戶重定向到「file://」位置。目的是在記錄點擊次數後在另一臺服務器上下載文件。Perl將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 

這是一個很好的方法嗎?有更好的方法嗎?請幫忙。先進的謝謝!

+0

如果文件在服務器上,file://將無法退出,或者當您說服務器時,您是在談論網絡共享嗎? – ikegami

回答

2

出於安全原因,這是不允許的。所有瀏覽器(我知道的)都會拒絕一個從http:// URL到一個file:// URL的元重定向。同樣的限制適用於30x服務器重定向。有關更多信息,請參閱Redirect Restrictions section of the Browser Security Handbook

+0

有沒有辦法從Perl中調用「file://」url? – txp111030

+3

如果你想打開一個本地服務器的文件,而不是使用'open'。如果你想在客戶端打開一個文件,那麼不需要。對我來說,看起來你不瞭解網絡的工作原理,這與Perl無關。 –

0

可能是最有用的方法是通過使用「的.url」文件(靜態或動態生成),如JFish222's post

否則很好的解釋,我怕你會用提升權限(強烈被卡住瀏覽器依賴),或者使用瀏覽器擴展等。