2009-12-10 54 views
1

有沒有辦法'強制'瀏覽器下載文件,而不是打開它?我試過通過js使用window.open(「file.txt」,「下載」)的方法;但是,Javascript jQuery鏈接下載一個txt文件

但沒有成功。

Thx。

更新:

我做了一個php文件,如下;

<html> 
<a href='dl.php?bid=3'> 

<php> 
$sql="select barquivo from bibilioteca where bid=$_GET[bid]"; 
$row=mysql_fetch_assoc(mysql_query($sql)); 
header("Content-Disposition: attachment;filename=biblioteca/$row[barquivo]"); 

然後它下載一個文件「biblioteca_」0字節。

+0

最好答案是在這個鏈接http://stackoverflow.com/questions/1597732/php-force-file-download-and-ie-yet-again/1597946#1597946 –

回答

4

你應該做這個服務器端。

如果發送

Content-type: application/octet 

Content-disposition: attachment; filename=file.txt 

頭那麼用戶將被提示下載。

+1

'octet-stream',通常。然而,由於是一個未知的類型,只是「octet」會起作用。 – bobince

1

就我所知,無法用純Javascript完成。你必須發送適當的頭文件服務器端。

如果您可以使用Apache的.htaccess設置(更容易)或PHP(更復雜,因爲您必須通過PHP解析txt文件,或引入PHP腳本來傳遞文件),您可以參考接受的答案爲here

2

不在javascript級別。您可以通過更改服務內容的MIME類型(可以從Web服務器或服務器端應用程序完成)來控制用戶代理(瀏覽器)嘗試執行的操作。

這意味着,你的名爲 「.txt」 文件發送到瀏覽器與

Content-Type: text/plain 

HTTP標頭。 如果代之以送達:

Content-Type: application/octect-stream 

HTTP標頭,最有可能的用戶將被提示保存文件 (無論文件名或擴展的)