Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передать файл в браузер 
:(
    Опции темы
onikys
Дата 8.3.2012, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 16.11.2009

Репутация: нет
Всего: нет



Суть проблемы такая:
Запрос идет через ajax, на сервере происходит действие и в ответе передается уже готовый файл с нужными заголовками:
Content-type: application/vnd.ms-excel
Content-Disposition attachment; filename="report.xls"

Как мне вывести окно "сохранить как", чтобы его можно было сохранить на компьютер?

Пока у меня одна идея - это сгенерировать файл на сервере и во фрейме передать ссылкой, но может есть и другой способ о котором я не знаю?
PM MAIL   Вверх
onikys
Дата 9.3.2012, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 16.11.2009

Репутация: нет
Всего: нет



актуально!
PM MAIL   Вверх
ksnk
Дата 9.3.2012, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Нужно иметь невидимый iframe
Код

<iframe name="xxx" id="xxx" style="display:none" src="javascript:void(0)"></iframe>


форма с таргетом xxx
Код

<form target="xxx" method='post' action='load.php'>
...
</form> 

В этой форме и должен быть тот элемент управления, который вызовет загрузку файла.

load.php должен выдавать файл с заголовками. Заголовки лучше использовать такие:
Код

header('Content-Type: application/octet-stream');
header('Connection: keep-alive'); // so it's possible to skip filesize header
header('Content-Disposition: attachment; filename="report.xls";');

application/octet-stream, видимо, самое важное.
Если возможно определить размер файла, нужно указать заголовок content-size, если невозможно - оставить так.

Как сделать загрузку чистым ajax(xmlHttpRequest) - не знаю, но подозреваю, что никак ;)



Это сообщение отредактировал(а) ksnk - 9.3.2012, 23:30


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0613 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.