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