У меня есть скрипт, который вызывает загрузку, и я звоню на это через Javascript. Однако диалоговое окно не появляется, вот скрипт download.php:
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: $ctype");
// change, added quotes to allow spaces in filenames, by Rajkumar Singh
header("Content-Disposition: attachment; filename=\"".basename($properFilename)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit();
Вот Javascript (с использованием JQuery):
///force download
$.ajax({
type: "GET",
url: "download.php",
data: 'file=' + msg + '&properFilename=' + properFileName,
success: function(msg){
window.location.href = msg;
});//ajax
Это перенаправляет мой браузер на другую страницу, а не показывает диалоговое окно вниз.
Я знаю, что переменная JS msg содержит файл с правильными заголовками, но я не знаю, что с ним делать, чтобы он отображал диалоговое окно загрузки.
Спасибо всем
p.s. Не знал, куда поместить этот поток JS или PHP.
EDIT:
У меня правильный подход, я уверен в этом :) - Пользователь заходит на мой сайт, он заполняет форму и нажимает «Отправить». Через несколько секунд их файл должен появиться в диалоговом окне, которое они могут загрузить. Для этого:
Я звоню AJAX, чтобы получить файл и загрузить его. Я использую PHP-скрипт для отправки заголовков. Теперь все, что мне нужно, - это способ отобразить диалоговое окно загрузки!