Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.11.2009, 20:21
Интересующийся
Отправить личное сообщение для .andreev Посмотреть профиль Найти все сообщения от .andreev
 
Регистрация: 21.10.2009
Сообщений: 16

Как сохранить полученный поток в файл?
Преамбула:
Есть вот такая http://sourceforge.net/projects/excelwriterxml/ штука, которая генерит файл. (Вызываем в браузере скрипт, а он создает файл и вызывает диалог для его сохранения)

На базе этого скрипта использую такую конструкцию:

var xmlHttp = new XMLHttpRequest();

function sendRequest(file){

//window.location="excel.php?name=" + file;//
xmlHttp.open("GET", "excel.php?name=" + file, true);
xmlHttp.onreadystatechange = serverResponce;
xmlHttp.send(null);
}

function serverResponce() { 
if(xmlHttp.readyState == 4){
    if(xmlHttp.status == 200){ 
     alert(xmlHttp.responseText); 
    }
    else{ alert("err!");}
}

}

xmlHttp.responseText содержит:
Код:
<workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40">
<documentproperties xmlns="urn:schemas-microsoft-com:office:office">
	

</documentproperties>
<excelworkbook xmlns="urn:schemas-microsoft-com:office:excel">
<styles>
	<style ss:id="Default" ss:name="Normal">
		<Alignment ss:Vertical="Bottom"     />
		<NumberFormat/>
		<Protection/>
	</style>
	<style ss:id="formatErrorsHeader">
		<Font  ss:Color="Automatic" ss:Bold="1"       />
		<Interior ss:Color="#FF0000" ss:Pattern="Solid" />
		<NumberFormat/>
		<Protection/>
	</style>
</styles>
<worksheet ss:name="orders">
	<row ss:index="1">
			<cell ss:index="1">
				<data ss:type="String">Order Reference</data>
			</cell>
		</row>
	<table>
		</table>

</worksheet>
</excelworkbook></workbook>
- то, что надо

Вопрос: как "то, что надо" = xmlHttp.responseText записать в файл и вызвать диалог сохранения?

window.location="excel.php?name=" + file; - делает "то, что надо", но прерывает вывод страницы

ПыСы: document.write, innerHTML - не помогли

Последний раз редактировалось .andreev, 21.11.2009 в 20:22. Причина: Склероз :)
Ответить с цитированием
  #2 (permalink)  
Старый 21.11.2009, 20:43
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

А тут яваскрипт и ни при чем.

Направляешь браузер (location.href) на нужный URL, при этом серверный скрипт должен генерировать заголовок:
Код:
Content-Disposition: Attachment
или
Код:
Content-Disposition: Attachment;filename=spreadsheet.xlsx
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сохранить данные в файл? Возможно такое на JavaScript? Forgott Общие вопросы Javascript 35 26.06.2015 19:11
Как сохранить текст в файл на клиенте Lucky13 Общие вопросы Javascript 7 14.08.2011 12:45
как сгенерировать script-ом ДРУГОЙ файл? 1.regulum Общие вопросы Javascript 7 10.07.2009 12:19
Как получить файл с сервера AJlekceu AJAX и COMET 1 02.11.2008 13:41
JavaScript как файл закодировать base64? Трактор AJAX и COMET 3 10.06.2008 13:22