2012-01-10 2 views
3

Есть ли способ сделать кнопку, которая генерирует текстовый/xml-файл, устанавливает тип содержимого для загрузки приложения, добавляет вложение и т. Д. На клиенте боковая сторона? То, что я хочу, является «загружаемым» -бэтом на моей странице, который сохраняет xml-файл. Это, как я сделать то же самое на ServerSide:Кнопка «Сохранить как» в IE, сохранить файл на стороне клиента

response.StatusCode = 200; 
     response.ContentEncoding = Encoding.UTF32; 
     response.AddHeader("content-disposition", "attachment; filename=" + fileName); 
     response.AddHeader("Content-Transfer-Encoding", "binary"); 
     response.AddHeader("Content-Length", response.ContentEncoding.GetByteCount(xmlString).ToString()); 
     response.ContentType = "application-download"; 
     response.Write(xmlString);  
+0

Вы имеете в виду с JavaScript? –

+0

Я предполагаю, что это ASP.NET с C#? – Carlito

+0

@ JanHančič Да, javascript/jquery – Johan

ответ

0

Если вы имеете в виду, чтобы создать файл в JQuery/JavaScript и быть в состоянии сохранить его на диск из браузера, то ответ прост НЕТ. Javascript не разрешен (по соображениям безопасности) для сохранения на диск, ни для того, чтобы заставить браузер сбросить всплывающее окно «Сохранить как ...» для локально созданного. У вас есть более легкое решение вашего вопроса. В вашем примере вы создаете xml-файл и отправляете его как вложение с сервера, почему бы вам не сделать кнопку для загрузки файла, созданного сервером? Вы не можете сделать это с помощью простого ajax, потому что он не может запускать загрузку в браузере, но вы можете использовать старый «трюк загрузки iframe», чтобы запустить загрузку на той же странице.

function download(url_to_your_creating_file_servlet){ 
iframe = document.createElement('iframe'); 
iframe.style.visibility = 'hidden'; 
document.body.appendChild(iframe); 
iframe.src = url_to_your_creating_file_servlet; 
} 

Или, если вы не возражаете, чтобы открыть еще одно окно/вкладку (немного уродливее) это также работает:

<a href="url_to_your_creating_file_servlet" target="blank"> Download </a> 
Смежные вопросы