2013-08-29 64 views
0

使用PHP,我創建了一個通過電子郵件上傳和發送文件的表單。現在,上傳完美並自動發送電子郵件到指定的電子郵件地址。我想包括,如果有可能的電子郵件內的文件的下載鏈接。我可以發送鏈接,但每當我點擊鏈接時,它都會在瀏覽器上打開文件。當點擊鏈接時,我希望下載它。事情是,我沒有連接或保存上傳的文件到我的數據庫。我只是將它上傳到我的服務器並直接發送給接收方。是否有可能實現我想要做的事情?如果是這樣,我怎麼能做到這一點?或者我需要爲它創建一個數據庫?使用PHP爲上傳文件生成下載鏈接

回答

1

您需要在鏈接指向的頁面上編寫文件下載代碼。從鏈接中提取文件名並編寫以下代碼

if (file_exists($file)) 
{ 
    if (FALSE!== ($handler = fopen($file, 'r'))) 
    { 
    header('Content-Description: File Transfer'); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename='.basename($file)); 
    header('Content-Transfer-Encoding: chunked'); //changed to chunked 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
    header('Pragma: public'); 
    //header('Content-Length: ' . filesize($file)); //Remove 

    //Send the content in chunks 
    while(false !== ($chunk = fread($handler,4096))) 
    { 
     echo $chunk; 
    } 
} 
exit; 
} 
+0

謝謝。我會試一試 – user1597438

+0

謝謝。這可以創建一個url,但是,當我試圖下載文件時,我無法打開它和我的電子郵件的所有其他內容,它們都是文本消失。爲什麼是這樣? – user1597438

+0

你把這段代碼放在哪裏?在您的電子郵件內容中,您無需更改任何內容。您只需將此代碼放在電子郵件中的鏈接指向的地方 –