我有一個腳本,當點擊'添加聯繫人'按鈕時,爲員工創建一個vCard。我在一個變量中有這個vCard,但我不確定接下來要做什麼。PHP將文件保存到用戶計算機
我認爲我的第一步應該是將此文件保存在服務器上?
我想只彈出一個框讓人們下載和保存電子名片,所以如果沒有必要的步驟,我想跳過它。
這裏的任何指針都會被appriciated。
謝謝。
我有一個腳本,當點擊'添加聯繫人'按鈕時,爲員工創建一個vCard。我在一個變量中有這個vCard,但我不確定接下來要做什麼。PHP將文件保存到用戶計算機
我認爲我的第一步應該是將此文件保存在服務器上?
我想只彈出一個框讓人們下載和保存電子名片,所以如果沒有必要的步驟,我想跳過它。
這裏的任何指針都會被appriciated。
謝謝。
如果你想有一個文件保存對話框彈出時,有人要求出口網址,你必須使用
header("Content-type:text/vcard; charset=utf-8");
header("Content-Disposition: attachment; filename=vcardexport.vcf");
echo $vCardData;
所以,不,你沒有將它保存在服務器上的第一個文件。你可以從變量中提供它。請注意,只要您爲內容類型指定正確的MIME Type,就可以將此方法用於任何其他數據。
另見https://en.wikipedia.org/wiki/VCard和https://www.ietf.org/rfc/rfc2183.txt
謝謝,這幫助我解決了這個問題,文檔也非常有幫助。 – 2012-01-09 17:03:32
嘗試看看內容處置頭:)
它可以強制在客戶端:)文件下載
如果您在服務器上的文件,你可以對按鈕的鏈接指向文件
<a href="location of the vcard file"><img src="button.jpg"></a>
或者您在尋找不同的傳送方式?
當用戶點擊職員配置文件中的「添加內容」鏈接時,會動態創建vCard。目前沒有頁面重新加載,所有事情都是通過AJAX完成的。 – 2012-01-09 16:11:47
您只需從PHP輸出vCard,使用響應頭設置正確的內容類型。這應該強制用戶的瀏覽器下載。我用google搜索了一下,發現this example。
謝謝你,這個例子在我的網站上幫助了很多人,而不是奇怪的與固定鏈接,這似乎是工作。 – 2012-01-09 17:01:45
如果你有你的電子名片在一個變量,那麼你就可以很容易地使用此代碼強制作爲一個下載到客戶端:
<?php
header('Content-type: text/vcard');
header('Content-disposition: attachment;filename=vcard.vcf');
echo $vcard_variable;
?>
是的,這就是我已經回答;) – Gordon 2012-01-09 16:12:29
這是從一些舊的RFC。我現在將其修改爲正確的內容類型。 – 2012-01-09 16:13:44
謝謝你,我已經使用這些標題,結合我的輸出,現在這個過程正在工作。 – 2012-01-09 17:02:37
PHP可以用來輸出給用戶以外的其他東西。發送正確的文件標題,用戶將被提示下載文件而不是獲取HTML頁面。 – DampeS8N 2012-01-09 16:06:53
此問題的更一般版本是[強制文件下載](http://stackoverflow.com/questions/3718962/force-file-download-in-php)。它不能解決你所有的特定問題,所以我不會給出它可能的重複,儘管這是非常接近的。 – Gordon 2012-01-09 16:33:14
謝謝戈登,我真的不確定我在找什麼,因爲我以前從未這樣做過。即我知道我需要下載一個文件,但實際上我沒有想到如果沒有先保存到服務器並下載,我就不會去做我想做的事情,所以'強制'位甚至沒有輸入我的想法。 – 2012-01-09 17:04:56