给定一个网址,我的应用程序会尝试下载该文件,例如,http://foo.com/bar.bat
会下载bar.bat
现在,给定最后用分号分隔的版本号,我的应用程序将从我的源代码控制中检索该特定版本并下载该文件。
例如,http://foo.com/bar.bat;1
应该下载bar.bat版本1。
http://foo.com/bar.bat;2
应该下载bar.bat版本2等。
问题:
Chrome会将正确的版本下载为bat文件
IE(我正在使用IE 11)和firefox下载正确的版本但是将'bat; 1'或'bat; 2'视为文件类型而不是'bat'。
我有mime类型作为应用程序/ bat。我试过'%3b'而不是';'但同样的问题。
不知道还有什么要检查。
任何帮助都将不胜感激。
答案 0 :(得分:0)
为什么不使用http://foo.com/bar.bat?version=1
?这应该适用于每个浏览器,因为它是一个标准。
答案 1 :(得分:0)
我通过在Perl中更改代码解决了这个问题(当然,在Google的帮助下)。
如果有人在将来感兴趣或面对这个问题,这就是我所做的。
在perl代码中,重定向到http://foo.com/bar.bat;1
正在以相对路径发生。
print $query->redirect(-uri => $redirect); # $redirect being '/bar.bat;1'
我给出了如下的绝对路径
my $RemoteHost = $query->url(-base=>1); #this gets http://foo.com
my $newredirect = "$RemoteHost$redirect";
print $query->redirect(-uri => $newredirect);
我会将erikvold标记为答案,因为他触发我查看perl代码。 谢谢Jonathan和erikvold。