2012-01-10 67 views
3

有沒有什麼辦法可以生成一個文本/ xml文件,設置內容類型爲應用程序下載,在客戶端添加附件等側?我想要的是我的頁面上的「下載」按鈕,它保存了一個xml文件。這是我做同樣的事情在服務器端:在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? – 2012-01-10 09:51:22

+0

我猜這是ASP.NET與C#? – Carlito 2012-01-10 10:06:18

+0

@JanHančič是的,javascript/jquery – Johan 2012-01-10 10:12:06

回答

0

如果你的意思是創建的jQuery/JavaScript中的文件,並能夠將其從瀏覽器保存到磁盤,答案是普通NO。不允許使用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> 
相關問題