2012-03-13 127 views
0

我想下載由jquery事件調用時由php頁面返回的文件。我紅色的插入可以做到這一點,但它在w3school上說,這個標籤已被棄用。我想知道是否有其他解決方案。使用JQuery下載文件/ Php

我認爲觸發下載的事件是使用簡單模式的模式窗口中的按鈕可能是相關的。我希望在事件發生後保持該窗口打開。

這是我第一次用PHP下載文件,所以可能有一個簡單的方法來實現這一點,我不知道。

+2

爲什麼不重定向用戶到下載網址,你甚至可以使用target =「_空白」,以確保下載在新窗口/標籤打開,而且由於鏈接只是文件的URL,然後窗口/選項卡將立即關閉本身 – deltree 2012-03-13 18:37:42

+0

我用php的原因,我需要控制誰有權訪問哪些文件。而我設計它的方式,我覺得它只適用於點擊下載,它開始下載而不是重新定向。 – maniak 2012-03-13 18:42:07

+0

[w3fools](http://w3fools.com) – 2012-03-13 18:42:09

回答

0

您可以使用PHP在某些權限下重定向到該文件。

<?php 
    if($username == "soandso") { 
     header("Location: download.exe"); 
    } 
?> 

此外,標記未被棄用。仍適用於新舊瀏覽器。

+0

通過下載一個文件,我希望它開始下載...就像在Chrome中它開始下載在屏幕的底部。它知道它是活着的,它可以工作,但它被提及在w3school上被棄用。所以我想知道是否有另一個「乾淨」的解決方案,不使用廢棄的標籤。 – maniak 2012-03-13 18:45:39

+0

PHP是一種服務器端編程語言。它不能強制客戶端下載文件。它所能做的只是將其重定向到瀏覽器將下載並返回到上一頁的位置。 – Anonymous 2012-03-13 18:46:50

+0

好的感謝澄清的事情,但這個解決方案將如何使用jQuery調用使用jQuery的? – maniak 2012-03-13 18:57:04

1

你可以製作一個替代的php文件,當你點擊按鈕時將強制下載。使用頁眉在PHP 這可能幫助: headers

+0

是的,謝謝,我試圖實現的解決方案,但由於我需要使用此方法的iframe來保持用戶在同一頁面,我想確保。 – maniak 2012-03-13 19:00:08

+0

你可以嘗試通過$ .get或$ .post調用那個php文件來發送一些觸發器參數,並且我認爲它不會導致打開另一個頁面。 – 2012-03-13 19:09:42

+0

不知道我是否正確,但$ .get和$ .post希望收到html內容而不是頭文件...但會更詳盡地嘗試 – maniak 2012-03-13 19:21:50