Заголовок MIME Type не работает.Браузер Открытие файла вместо - PullRequest
0 голосов
/ 09 августа 2011

Я запускаю скрипт 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

1 Ответ

2 голосов
/ 09 августа 2011

У вас есть два \n\n в вашей строке размещения контента.Второй \ n завершает блок заголовка и запускает блок body, поэтому заголовок Content-Type фактически становится частью тела документа.Помните, что в HTTP все выходные данные являются заголовками, пока не встретится пустая строка, после которой начинается тело.

Поменяйте местами порядок двух строк или переместите вторую \n в строку Content-Typeи посмотрим, что получится.

...