我正在运行一个perl cgi脚本,试图打开一个“另存为”对话框,让用户下载并保存他们计算机上的特定文件。目前我的代码看起来像这样:
print "Content-Disposition: attachment; filename=$temp\n\n";
print "Content-Type: application/x-download\n";
print @fileStuff
我已经浏览过互联网,似乎MIME类型标题是正确的,但它们似乎并没有起作用。浏览器似乎打开文件并显示内容。这是有问题的,因为文件非常大。我在chrome和firefox上得到了相同的结果。
谢谢!
编辑:
my $path = "/home/blabla/Desktop/";
my $temp = $fileList[3];
warn ($temp);
my @fileholder;
push (@fileholder, "<$path/$temp");
print "Content-Type:application/x-download\n";
print "Content-Disposition:attachment;filename=$temp\n\n";
print @fileholder
答案 0 :(得分:2)
您的Content-disposition行中有两个\n\n
。第二个\ n终止标题块并启动主体块,因此Content-Type标题实际上成为文档正文的一部分。请记住,在HTTP中,所有输出都是标题,直到遇到空行,然后正文开始。
交换两行的顺序,或将第二行\n
移至内容类型行,看看会发生什么。