[jquery] Как передать файл в браузер?

dandandan

Мой дом здесь!
Регистрация
7 Авг 2008
Сообщения
1.036
Реакции
292
Нужно с помощью jquery сформировать запрос, отправить его на сервер. Сервер в ответ возвращает файл. Как этот файл передать пользователю для сохранения? iframe не предлагать :) !

PHP:
$.post("user.php",
{
    otchet: "getCvs",
    data1: data1,
    data2: data2
},
    function(data) {
            alert('что-то передано'+data);
},
"json")
.error(function() {
      alert('Ошибка');
});
 
Посмотри вот этот плагин:
Для просмотра ссылки Войди или Зарегистрируйся
К сожалению, без реализации на PHP рабочего модуля для всех браузеров вряд ли сделать получится.
 
зачем тут alert?
HTML:
$.post("user.php",
{
    otchet: "getCvs",
    data1: data1,
    data2: data2
},
    function(data) {
           $('#some_block').html(data);
});
в user.php
PHP:
function file_download($filename, $mimetype='application/octet-stream') {
  if (file_exists($filename)) {
    header($_SERVER["SERVER_PROTOCOL"] . ' 200 OK');
    header('Content-Type: ' . $mimetype);
    header('Last-Modified: ' . gmdate('r', filemtime($filename)));
    header('ETag: ' . sprintf('%x-%x-%x', fileinode($filename), filesize($filename), filemtime($filename)));
    header('Content-Length: ' . (filesize($filename)));
    header('Connection: close');
    header('Content-Disposition: attachment; filename="' . basename($filename) . '";');
// Открываем искомый файл
    $f=fopen($filename, 'r');
    while(!feof($f)) {
// Читаем килобайтный блок, отдаем его в вывод и сбрасываем в буфер
      echo fread($f, 1024);
      flush();
    }
// Закрываем файл
    fclose($f);
  } else {
    header($_SERVER["SERVER_PROTOCOL"] . ' 404 Not Found');
    header('Status: 404 Not Found');
  }
  exit;
}
...
 
window.location.href=data.path_to_file;
 
Назад
Сверху