2014-05-23 24 views
2

我使用MooTools作爲JS框架。如何在從服務器請求文件後啓動「另存爲/打開」?

當用戶點擊「顯示報告」 - 鍵在我的網站,我開始Request.HTML檢索請求報告的路徑。

如果報告尚未存在,則在服務器上創建它(等待彈出窗口顯示給用戶)。報告文件被保存到服務器上的特殊路徑,並且該路徑返回給瀏覽器。

當我得到報告文件的路徑 - 報告可以達到大約5到8MB - 我想在顯示用戶「Download-ProgressBar」的同時開始一個新的Request.HTML來檢索大報告文件。

Everthing,直到這一點工作正常。 ProgressBar完成後,我收到了我的大文件。

但我的問題是現在,我怎麼能從JavaScript開始像「打開文件」或「另存爲文件」。

我下載並在控制檯中顯示的文件再用,但現在我希望用戶保存在某個地方該文件還是直接打開它...

enter image description here

類方面。

+0

馬里奧請記住標記答案如果他們解決了您的問題接受。 – Rikard

回答

1

爲什麼不只顯示指向該文件的鏈接,以便它在新頁面中打開? 這種方式可以在新窗口中打開並從瀏覽器的菜單中保存(或使用右鍵單擊>保存到菜單)。

既然你已經有了你的文件系列化大多數瀏覽器現在supports the data uri scheme因此,如果這一優良,支持的瀏覽器的有限的子集,你可以做

window.open(fileToSave, '_blank'); 

特別是老版本的IE不支持所有類型的文件使用data-uri,所以它不適用於html。

有較新的瀏覽器的一些文件API太多,而且有涉及閃存一些其他的解決方案,但在歷史上這樣做的正確方法是導航到它返回一個頭

Content-Disposition: attachment; filename=yourfilename.html 

的服務器網頁,將在任何瀏覽器中工作(我在IE6中使用了很多,沒有特別的問題)。

相關問題