2014-11-02 22 views
1

基於我在做的是基於我的數據庫中的信息,隨機生成和其他一些因素生成一個License.xml文件,根據我的研究,我的印象是如果我把它放在我的代碼中,它會自動將License.xml文件下載到用戶計算機。在PHP中生成文件然後引用它,而不將它存儲在服務器上?

header('Content-Disposition: attachment;filename=License.xml'); 
header('Content-Type: text/xml'); 
$dom = new DOMDocument(); 
$xml = $dom->createTextNode('<Account Username="'.$fuser.'" Password="'.$fpass.'" Key="'.$softwareKey.'"></Account>'); 
$xml = $dom->appendChild($xml); 
echo $dom->saveXML(); 

然而,這是不是其實case--這樣做是什麼使得它如此頁面沒有加載,而不是整個生成的源保存爲License.xml

的我追求的功能是用戶可以毫無問題地加載頁面,並查看頁面上的內容,但是當條件滿足時,該文件將自動下載。

如果這是不可能的,那麼是否有可能將其存儲在一個鏈接值,例如:

Click <a href="#">here</a> to download your License file! 

,我希望能夠做的另一件事是attatch文件到電子郵件,但我已經找到了很多解釋如何做到這一點,但顯然我不是一個用於生成文件,我不明白DOM是如何工作的,不管我讀了多少教程等等。它只是傷了我的腦袋,所以我決定只是將整個XML文件解析爲文本。 (不太重要,這是我的應用程序讀取License.XML文件的確切格式)

任何幫助非常感謝,請不要將我鏈接到DOM文檔我一直在盯着他們兩個小時,它傷害了我的頭,PHP的整個官方文檔頁面只是讓我頭疼。

+0

你是否在輸出「header(...」之前的內容,如果是這樣,它不會工作,甚至在php打開標籤上面的空白行就足夠了,請嘗試將下載文件放在一個單獨的文件中,頁面.. – ArtisticPhoenix 2014-11-02 03:35:44

+0

你在腳本開頭是否缺少'<?php'?腳本是否有'.php'擴展名? – Barmar 2014-11-02 03:37:20

+0

我也不太關心DOM,你可以使用JSON嗎? – ArtisticPhoenix 2014-11-02 03:45:49

回答

1

嗨最可能是你有這樣的事情

<p> some content </p> 
<?php //hopefully a php tag. etc. 
header('Content-Disposition: attachment;filename=License.xml'); 
header('Content-Type: text/xml'); 
.... download code .... 
?> 
<p> some more content </p> 

這不會工作,因爲你不能有一個頭調用之前的輸出。解決方法是製作一個單獨的文件。傳遞這種驗證令牌並在iframe中運行代碼或作爲單獨的請求(單獨的網頁)運行。在代碼之後,您可能還會有內容,在這種情況下,它將包含在您下載的文件中。

該標題基本上設置它的頁面是什麼type。默認情況下,大多數網絡服務器的標頭爲Content-Type: text/html;。基本上,你不能混合下載與HTML內容。除非你想要下載該html內容。你不能在輸出後調用標題,因爲如果你做任何輸出,web服務器已經發送了這個默認的html標題。

好,最簡單的方法是把你在一個單獨的文件下載代碼,我們將調用它的download.php

然後一個鏈接指向它。

<a href="location of download.php" >click me</a> 

當它加載它將運行代碼。只要確保在header()函數之前不輸出任何內容。甚至沒有<?php標籤

一個I幀之前一個空行會做沒有你只是做這樣

<iframe src="location of download.php" style="display:none;" ></iframe> 

像一個門戶網站到另一個頁面的iframe認爲鏈接。

+0

什麼關於我將它存儲在鏈接中的解決方案?我怎麼去解決這個問題? – Hobbyist 2014-11-02 04:42:03

+0

你不能在鏈接中「存儲」文件,也就是說我會使用一些javasript來更改iframe的「src」或創建iframe,我想你可以鏈接到php文件的位置 – ArtisticPhoenix 2014-11-02 04:43:47

+0

好吧,謝謝,我會研究iFrames! – Hobbyist 2014-11-02 04:46:34

相關問題