簡體   English   中英

表單提交后自動啟動文件下載

[英]Auto start file download after form submission

我有一個用戶在線完成的Web表單。 當他們按提交時,它將為他們開始文件下載。

目前,我處理表單提交並為用戶生成合適的文件,並使用合適的標題將其關閉。 例如...

header('Content-type: "application/octet-stream"');
header('Content-Disposition: attachment; filename="yourfile.txt"');
header("Content-Transfer-Encoding: binary");

但是,由於這會立即開始下載,因此瀏覽器會將原始表單保留在屏幕上。

下載完成后(或下載開始之前)我真的想去一些“謝謝”屏幕。 我知道這是可能的,因為您訪問的幾乎每個下載站點都會這樣做(通常在下載開始之前為您提供完整的廣告)。

那么,如何顯示一個“謝謝”屏幕,在一秒鍾后開始下載?

如何提出任何解決方案會影響后退按鈕的行為,因為我不希望在沒有重新填充表單的情況下再次下載文件?

我在服務器上使用PHP,並且可以依賴客戶端上可用的Javascript(和jQuery)。

謝謝。

您可以將表單發送到Thank you文檔並在文件下載中添加META刷新

<meta http-equiv="refresh" content="3;url=download.php">
<p>Thank you! The download will start in 3 seconds. If not, use this link to download the <a href="download.php">file</a></p>

添加第二頁,上面寫着“謝謝你,你的donwnload將在幾秒鍾內啟動”並使用javascript觸發下載:

$(document).ready(function(){
  window.setTimeout(function(){
    window.location = 'http://yourdownloadhost.com/file.zip';
  }, 1500);
});

或使用元重定向。

您可以在頁面中插入隱藏的iframe,然后將表單提交到此iframe。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM