Показать сообщение отдельно
  #3 (permalink)  
Старый 12.10.2010, 09:45
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

Я делал такое недавно. Но по другому.
Если идет такой запрос, то формирую на php файл для скачки(временный), а клиенту возвращаю флаг, что сохранение файла:
else if (resp == 'FileGetOK_') {
   // сохраняем
   document.location = 'savefile.php';

document.location - это уже вызовется диалог сохранения файла. Имя файла через сессию передаем.
savefile.php:
session_start();
$f = (isset($_SESSION['loadfile'])) ? $_SESSION['loadfile'] : 'xxx.xxx';
unset($_SESSION['loadfile']);
if (file_exists($f)) {
      $fn = (isset($_SESSION['loadfilename'])) ? $_SESSION['loadfilename'] : 'report' . mt_rand(100, 1000) . '.xls';
      header("Content-Type: application/octet-stream");
      header("Content-Disposition: attachment;filename=" . $fn);
      echo file_get_contents($f);
      unlink($f);
}
Ответить с цитированием