是否可以強制文件下載到用戶的瀏覽器(當然標準對話框提示)?由服務器觸發。基本上我正在考慮將文件推送到來自服務器文件系統的瀏覽器。或者,這是不可能的,因爲安全沙箱? 如果這是不可能的,是否有與此非常接近的另一種方式?我不想在沒有用戶同意的情況下發送文件。我可以想到兩步辦法,首先提示用戶輸入數據,然後讓用戶點擊一個OK按鈕觸發下載,但在下載結束時,用戶會得到另一個確認框(要求打開的標準下載提示或保存)。如果可能的話,這將是很好的一步。是否可以觸發文件下載到用戶的瀏覽器?
回答
使用ajax json腳本輪詢服務器每5秒或10秒, 當服務器有一個文件準備好迴應一個肯定的答案「我有一個文件」有一個iframe移動到該文件是,然後將其作爲正常下載進行處理。
我已經提供了一個我應該怎樣認爲它應該工作的小例子,所以你有一些工作。我沒有檢查它的錯誤,但它更多的是概念證明。
jQuery的例子(沒有JSON):
$.ajax('/myserverscript.php?fileready=needtoknow').done(function(data)
{
if(data.indexOf("I have a file") != -1)
{
xdata = data.split('\n');
data = xdata[1];
document.getElementById('myiframe').location.href = data;
}
});
PHP代碼
$x = filecheckingfunction();// returns false if none, returns url if there is a file
if($x !== false)
{
echo 'I have a file\n';
echo $x;
}
這絕對有可能。假設你想這是由服務器觸發,你只需向他們發送這個頭:
Location: http://www.foo.com/path/to/file
哪裏foo.com
是您的域和它所包含的文件路徑。這會將用戶轉到您的文件鏈接,並使其自動下載。現在
,來解決在您的瀏覽器中查看內容的問題,需要用服務器端代碼發出Content
頭信息像這樣(使用PHP爲例):
<?php
header("Content-Type: application/octet-stream");
header("Content-Length: " . filesize($file));
header('Content-Disposition: attachment; filename=' . $file);
readfile($file);
?>
希望這個作品僞代碼足以讓你開始。祝你好運!
不一定 - 如果他們在瀏覽器中,並且將它們鏈接到圖片(或其他類似的資源) ,它只會讓瀏覽器查看圖片。 – 2012-08-08 14:50:11
答覆已更新。 – 2012-08-08 14:52:26
既然您知道您必須提示用戶,請嘗試使用帶有type="application/octet-stream"
的普通超鏈接。您可以在標題中使用:"content-disposition: attachment"
。
- 1. 用JQuery觸發瀏覽器下載
- 2. 觸發的網頁瀏覽器下載
- 3. django:手機瀏覽器不會觸發下載,而是將文件加載到瀏覽器
- 4. 是否可以限制firexox瀏覽器加載媒體文件?
- 5. 是否可以通過手機瀏覽器觸發Android服務?
- 6. 瀏覽器緩存可下載文件
- 7. 是否可以將用戶重定向到Firefox瀏覽器
- 8. 是否有可能使用Javascript觸發瀏覽器的窗口?
- 9. 應用程序是否可以發佈到Web瀏覽器?
- 10. 通過AngularJS,WebAPI發送文件到瀏覽器,不會觸發下載?
- 11. 將文件下載到瀏覽器(ASP.NET)
- 12. 瀏覽器是否存儲緩存的CSS文件,如果可以,我可以下載css文件嗎?
- 13. 是否可以安全地將JavaScript代碼發送到用戶的瀏覽器?
- 14. 是否可以直接從瀏覽器保存文件到MongoDB?
- 15. IE的條件標籤 - 如果瀏覽器是IE瀏覽器,是否可以不加載JS文件?
- 16. 是否可以重寫瀏覽器中的上下文菜單?
- 17. 是否可以將OutputStream連接到java applet的瀏覽器的下載窗口?
- 18. 是否可以將.coffee腳本文件加載到瀏覽器並執行?
- 19. 下載文件到客戶端瀏覽器,在卡住到Response.End()
- 20. 是否可以在用戶的瀏覽器上存儲圖像
- 21. JavaScript可以檢測用戶的瀏覽器是否支持gzip?
- 22. 在瀏覽器之外使用Javascript觸發器下載
- 23. 是否可以枚舉瀏覽器中的文件?
- 24. 我們可以告訴用戶是否取消瀏覽器文件上傳?
- 25. 瀏覽網頁時,瀏覽器是否會下載可能的資源列表?
- 26. 如何發送文件到瀏覽器進行下載?
- 27. 發送文件到瀏覽器進行下載
- 28. Perl如何發送zip文件到瀏覽器下載PSGI
- 29. 檢測焦點事件是否由用戶/瀏覽器或jQuery觸發
- 30. 用戶是否可以在瀏覽器中修改網站JavaScript?
+1無需離開頁面即可下載。 – 2012-08-08 14:50:43