Perl / CGI:下载文件后重定向到其他页面

时间:2011-05-13 15:46:15

标签: perl redirect cgi download

这是一个相当新的问题,我已经搜索了这个主题了一段时间,但我发现的任何内容似乎都没有描述。我有这段代码,用于向用户提供文件下载,完美运行:

open(DOC, "<$file_name") or die "$!";
@textFile = <DOC>;  
close DOC;

print "Content-Type:application/x-download\n";  
print "Content-Disposition:attachment;filename=" . $basename . "\n\n";   
print @textFile;

我的问题是文件下载开始后,我想将用户重定向到另一个页面。上面的脚本实际上是由另一个脚本从表单提交的,我有:

<form action="/cgi-bin/download.pl">   
    <p> some msg </p>  
    <p><input type="submit" value="Download" name="Download"></p>            
    </form>

我尝试在输入标签中添加一些javascript语句,如:

onclick="javascript:window.document.location.href=\'http://www.mynewpage.com'

以及最后(download.pl)的打印类似于:

print "Location: http://www.mynewpage.com";

它不起作用。

如果有人能给我一个提示,我真的很感激!

提前致谢!

亚历

2 个答案:

答案 0 :(得分:1)

您不能使用HTTP执行此操作(请参阅ADW的resposne)。

大多数网站所做的是将您重定向到包含一些javascript然后启动下载的页面。如果不起作用,它还提供链接。

例如:http://sourceforge.net/projects/sevenzip/files/7-Zip/9.22/7z922.exe/download

请参阅有关javascript的问题:starting file download with JavaScript

答案 1 :(得分:0)

你无法使用直接http / html。

对查询的响应是一个文件,您也不允许发送额外的响应(即重定向)。

正如戴夫所说,通常是用JavaScript完成的。​​