Загрузите файл через ajax-вызов phpPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Загрузите файл через ajax-вызов php

Сообщение Anonymous »

У меня есть кнопка, и при нажатии она вызывает функцию ajax.

Вот моя функция ajax

Код: Выделить всё

function csv(){

ajaxRequest = ajax();//ajax() is function that has all the XML HTTP Requests

postdata = "data=" + document.getElementById("id").value;

ajaxRequest.onreadystatechange = function(){
var ajaxDisplay = document.getElementById('ajaxDiv');
if(ajaxRequest.readyState == 4 && ajaxRequest.status==200){
ajaxDisplay.innerHTML = ajaxRequest.responseText;
}
}

ajaxRequest.open("POST","csv.php",false);
ajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
ajaxRequest.send(postdata);
}
Я создаю CSV-файл на основе ввода пользователя. После создания я хочу, чтобы он предлагал загрузку или принудительную загрузку (предпочтительно принудительную). Я использую следующий скрипт в конце php-файла для загрузки файла. Если я запускаю этот скрипт в отдельном файле, он работает нормально.

Код: Выделить всё

$fileName = 'file.csv';
$downloadFileName = 'newfile.csv';

if (file_exists($fileName)) {
header('Content-Description: File Transfer');
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename='.$downloadFileName);
ob_clean();
flush();
readfile($fileName);
exit;
}
echo "done";
Но если я запущу его в конце csv.php, он выведет содержимое файла .csv на страницу (в ajaxDiv) вместо загрузки.

Есть ли способ принудительно загрузить файл в конце csv.php?

Подробнее здесь: https://stackoverflow.com/questions/666 ... x-call-php
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»