2013-08-29 62 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

你把这段代码放在哪里?在您的电子邮件内容中,您无需更改任何内容。您只需将此代码放在电子邮件中的链接指向的地方 –