2015-06-14 68 views
1

文件我有一些的docx文件在一些特定的地方服務器,我只是希望他們使用php.but我們不能在給予地方重定向他們,因爲有實際的客戶端的文件存儲到下載出口DOCX在PHP

我試圖谷歌,但沒有得到該

當前的代碼更合適的解決方案:

function users_export_resume($id){ 

     $filename=base_url()."user_info/".$id."/resume.docx"; 
     header("Content-Type: application/force-download"); 
header("Content-Type: application/octet-stream"); 
header("Content-Type: application/download");; 
header("Content-Disposition: attachment;filename=Resume.docx"); 
header("Content-Transfer-Encoding: binary "); 
     readfile($filepath); 
    } 

有什麼建議? 有什麼不對嗎? 請帶我出去 由於提前

+0

你爲什麼不只是做一個重定向的結果'頭( '位置:' $的newURL);' – hoss

+0

可能重複[如何在PHP中重定向?](http://stackoverflow.com/questions/768431/how-to-make-a-redirect-in-php) – hoss

+0

我不認爲需要重定向在那個我存儲我的客戶文件的地方,所以請給我另一種選擇,因爲即使我需要文件名也必須改變,而不是相同的文件名,因爲這是需要安全的目的 –

回答

2

我認爲錯誤是:

  1. 您使用未定義的變量$filepath
  2. 變量$filename必須包含的文件路徑,而不是鏈接。

所以,你的代碼必須是:

define('WWW_ROOT', '/var/www/your_site_address'); // put it into C:\www\etc on Windows 

function users_export_resume($id){ 
    $filename=WWW_ROOT."/user_info/".$id."/resume.docx"; 
    header("Content-Type: application/force-download"); 
    header("Content-Type: application/octet-stream"); 
    header("Content-Type: application/download");; 
    header("Content-Disposition: attachment;filename=Resume.docx"); 
    header("Content-Transfer-Encoding: binary "); 
    readfile($filename); 
} 

,並在這種情況下,你的代碼的工作很適合我。

我希望這會有所幫助。

編輯1:

我固定的多操作系統發行代碼

+0

不,它不會工作,如果我會考慮像我的應用程序必須需要兼容Linux以及微軟比它會創建問題 我不能給那個靜態路徑 –

+0

我只想知道是否有任何錯誤的標題因爲我不能得到確切的解決方案,請幫助我,如果你得到更好的解決方案,而不是靜態路徑的動態路徑 –

+0

@AnkitDoshi你的代碼包含2個錯誤。我在我的例子中修復了它。所有標題都是正確的。此外,我添加了不斷爲Linux和Windows。 – stepozer