2015-12-21 35 views
2

就像我的標題我該怎麼做那件事? 我試圖編寫像下面(文件view_report.php)如何重命名使用Javascript和PHP標題下載的文件?

<?php 
    header('Content-Disposition: inline;filename=report_loader.txt'); 
?> 
<div id="reportTable"> 
    <table> 
     <thead> 
      <tr> 
       <th>No.</th> 
       <th>Name</th> 
      </tr> 
     </thead> 
     <tbody> 
      <?php foreach($reports->result() as $rows): ?> 
      <tr> 
       <th><?php $rows->no; ?></th> 
       <th><?php $rows->name; ?></th> 
      </tr> 
     </tbody> 
    </table> 
</div> 
<div class="row"> 
    <input type="button" class="btn btn-success btn-sm" value="Generate Excel" id="exportExcel" /> 
</div> 
<script> 
    $("#exportExcel").click(function (e) { 
     window.open('data:application/vnd.ms-excel,' + $('#reportTable').html()); 
     e.preventDefault(); 
    }); 
</script> 

編輯 這是我的全部代碼。我已經嘗試過了。我在本網站提到了一些問題,但我並沒有爲我清理解決方案。我其實曾嘗試使用Content-Disposition: inlineContent-Disposition: attachment。但仍然沒有工作。瀏覽器(我在Chrome和Firefox上試過),它返回隨機文件名,而不是我想要的文件名。任何人都可以幫我找到這個解決方案嗎?

+0

有[可能在Chrome中失敗](http:// blog。tylerholmes.com/2008/05/http-headers-content-type-and-content.html),它要求將content-type設置爲,例如'application/octet-stream',以便從'content-disposition'並且不會從URL中猜出。 –

+0

如果我使用'application/octet-stream'或'application/vnd.ms-excel' – gultomicro

回答

2

我認爲內容處置沒有「內聯」。

你可以嘗試:

header('Content-Disposition: attachment;filename=report_loader.txt'); 

更新: Sry基因,有內嵌的內容性格。但是,如果您希望瀏覽器顯示內容,請不要下載。因此它可能會忽略文件名屬性。

來源: http://www.ietf.org/rfc/rfc1806.txt


更新2:

試試這個:

var blob = new Blob([$('#reportTable').html()], {type: "text/html;charset=utf-8"}); 
saveAs(blob, "table.html"); 

這應該從#reportTable保存HTML作爲table.html

注意:如果你想創建一個Excel文件,你將需要更多不僅僅是html源代碼。

+0

感謝您的回答,它仍然不起作用。我已經爲此嘗試了'inline'和'attachment'。但仍然不起作用 – gultomicro

+0

它爲你工作嗎? –

+0

你的第二個udpate?仍然不適合我 – gultomicro

0

你可以試試這個:

$file_name='abc.txt'; 
header("Content-Disposition: attachment; filename=" .$file_name); 
+0

仍然沒有爲我工作 – gultomicro

0

例子:

<a href="/your/file/destination" download="file_name_for_user">Download Your Downloading Thingy</a> 

請查看本文檔:

https://developer.mozilla.org/en/docs/Web/HTML/Element/a

它指出:

下載

這個屬性,如果存在,表明筆者擬用於下載的資源,這樣當用戶點擊鏈接,系統將提示將其保存爲本地文件的超級鏈接。如果該屬性具有值,則該值將用作保存提示中的預填文件名,該保存提示將在用戶單擊鏈接時打開(用戶在實際保存文件之前可以更改名稱)時打開。對允許的值沒有限制(雖然/和\將被轉換爲下劃線,阻止特定的路徑提示),但是您應該考慮大多數文件系統在文件名稱中支持哪些標點符號方面存在限制,瀏覽器可能會相應地調整文件名稱。

+0

我試過這一個,但仍然不適合我 – gultomicro