2013-10-30 164 views
6

我現在有這樣的代碼:提示用戶使用「另存爲」對話框保存文件?

function download(filename, text) { 
     var pom = document.createElement('a'); 
     pom.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); 
     pom.setAttribute('download', filename); 
     pom.click(); 
} 

download('test.html', string); 

字符串中包含了很多的被寫在a.html文件的HTML代碼。 上面的代碼工作完美。點擊一個按鈕後,瀏覽器(chrome)會自動下載一個帶有寫入字符串內容的html文件。現在,我想要做的是,不要自動下載文件,而應該打開另存爲對話框,並詢問用戶文件的位置和名稱,然後將其下載到該位置。一個簡單的答覆將非常感激。

+1

我認爲它會一直使用默認的行爲,因爲這是用戶所期待的。 –

+0

嗯,在我的情況,用戶應該能夠設置要保存的文件...... –

+0

如果瀏覽器沒有指示他們的瀏覽器,否則這樣做會自動發生的位置和名稱。但是也許你可以通過鏈接的'type'屬性提供不同的MIME類型來強制它。 – CBroe

回答

4

我的瀏覽器被設置爲自動下載的默認位置的所有文件,這就是爲什麼不僅此文件,但我瀏覽器中的所有其他文件被直接下載,而不保存提示對話。將瀏覽器中的設置更改爲「始終詢問下載位置」。

+0

我嘗試過各種事情所有的文件。你救了我。 –

2

做到這一點的唯一方法是設置文件的標題在服務器上,像這樣:

<FilesMatch "\.(?i:pdf)$"> 
    ForceType application/octet-stream 
    Header set Content-Disposition attachment 
</FilesMatch> 

下載屬性不允許您更改文件名或對文件類型更多,因爲它是明顯的安全風險。

你正在嘗試做複製右鍵 - 另存爲對話,但恐怕是不可能在這個時候。

相關問題