使用PHP为上传的文件生成下载链接

时间:2013-08-29 05:32:54

标签: php email

使用PHP,我创建了一个通过电子邮件上传和发送文件的表单。现在,上传工作完美,并自动将电子邮件发送到指定的电子邮件地址。我想包括,如果有可能的电子邮件内的文件的下载链接。我已经能够发送一个链接,但每当我点击链接时,所有它都会在浏览器上打开文件。我想在点击链接时下载它。问题是,我没有将上传的文件连接或保存到我的数据库。我只是将它上传到我的服务器上并直接发送到接收器。是否有可能实现我想做的事情?如果是,我怎么能实现这个目标?或者我需要为它创建一个数据库吗?

1 个答案:

答案 0 :(得分: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;
}