我正在使用MVC 3.我在服務器上的Action Method(稱爲GetCSV())中創建了一個csv文件。這是一個[HttpPost]操作方法。我想要做的是將該csv文件作爲可下載文件直接發送到網絡瀏覽器。我得到這個使用window.open(),然而,這是一個本質上的GET方法,我需要使用POST的東西,因爲我需要傳遞很多參數。理想情況下,我想使用Ajax,因爲我可以使用這種方法輕鬆地將大量參數傳回服務器。關於如何使用Ajax調用將參數傳遞給服務器,然後以某種方式將響應打開爲可下載文件的任何想法?我會很感激任何建議!如何將Ajax響應作爲可下載文件發送到Web瀏覽器客戶端?
2
A
回答
1
我的解決方案是使用Microsoft的MVC 3 Ajax Form而不是JQuery的Ajax。幾個月前,我偶然發現,如果您沒有爲MVC Ajax表單指定「成功」函數,它只是將文件發送到Web客戶端進行下載。這是我需要發生的事情。我試過了,它的確按照預期工作。
0
無法使用JavaScript(至少以所有瀏覽器支持的標準方式)或ajax將文件保存到本地文件系統。這就是爲什麼推薦的方法是不使用ajax,通常是通過GET。
然而,您可以通過jquery的.param()將帶有參數的json對象轉換爲URL,如this answer所示。
如果您確實想要探索javascript替代方案,也許您可以查看僅支持鉻AFAIK的FileSystem API。
+0
幾個月前,我發現純粹的意外,如果你沒有指定一個「成功」函數來捕獲Ajax響應,那麼不顯眼的Ajax(內置於mvc 3)直接發送json文件到頁面供下載。我會在星期一試一試,讓你們知道它是否有效。當然,除非有人在此之前嘗試過。 ;) – TheDude 2013-04-07 03:19:27
相關問題
- 1. 如何停止瀏覽器將「application/json」AJAX響應作爲文件下載
- 2. 如何將二進制blob發送到客戶端瀏覽器?
- 3. 下載文件到客戶端瀏覽器,在卡住到Response.End()
- 4. 如何從客戶端(瀏覽器)向客戶端(瀏覽器)發送客戶端的SSL/TLS證書
- 5. 從Google Drive下載文件並通過Google Drive python客戶端將文件作爲HttpResponse發送到客戶端
- 6. 如何從瀏覽器客戶端發送HTML電子郵件?
- 7. ASP.NET將Cookie發送到客戶端瀏覽器
- 8. 如何從Google App Engine的python腳本中將字符串作爲文件發送到瀏覽器客戶端
- 9. 如何發送文件到瀏覽器進行下載?
- 10. 發送瀏覽器響應
- 11. 如何將Flex模塊加載到客戶端瀏覽器中?
- 12. 將數據推送到客戶端瀏覽器的Web應用程序
- 13. 將文件作爲附件發送到瀏覽器
- 14. 播放發送HTML到客戶端,但客戶端瀏覽器不呈現它
- 15. 瀏覽器中的websocket客戶端可以發送標題嗎?
- 16. 如何將文件發送到客戶端以便下載對話框打開?
- 17. sftp文件瀏覽器客戶端
- 18. 如何發送客戶端的多個文件以下載
- 19. 如何從服務器(作爲Web代理)讀取HTTP響應並向客戶端發送響應
- 20. 將文本發送到其他客戶端的瀏覽器有哪些漏洞?
- 21. 將文件發送給客戶端進行下載
- 22. SimpleTest - Web瀏覽器 - 將身份驗證傳輸到客戶端
- 23. 如何將變量推送到Web客戶端以獲取Ajax?
- 24. 客戶端(瀏覽器)如何生成發送到服務器的請求?
- 25. 將HTTP響應發送/瀏覽回瀏覽器
- 26. 如何使服務器端域模型可用於客戶端Web瀏覽器?
- 27. 如何使用python下載推送到瀏覽器的文件?
- 28. 接收服務器響應並將其發送到瀏覽器?
- 29. JSF:如何捕捉響應是發送到客戶端
- 30. 如何使用servlet將PDF文件發送到客戶端。
難道你不能返回一個路徑? – aIKid 2013-04-06 23:24:33
好吧,我實際上並沒有將csv保存在服務器磁盤上。它全部在服務器內存中生成。最後,我想這樣做,因爲保存到磁盤將使其更具可擴展性,但現在它正在內存中完成。 – TheDude 2013-04-06 23:31:16