使用 PHP 进行创建文件并在下载后进行删除
需求:下载word文档,并且在下载后删除,不占用服务器空间
//查询要下载的数据
$html = Model::first()->content;
//创建临时文件名字
$fileName = Model::first()->title.".doc";
//创建文件到指定目录
file_put_contents("./doc/".$fileName,$html);
//打开文件,如果文件不存在会进行创建
$fp=fopen("./doc/".$fileName,"r");
//返回文件大小
$file_size=filesize("./doc/".$fileName);
//下载文件需要用到的头
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition: attachment; filename=".$fileName);
$buffer=1024; //设置一次读取的字节数,每读取一次,就输出数据(即返回给浏览器)
$file_count=0; //读取的总字节数
//向浏览器返回数据
while(!feof($fp) && $file_count<$file_size){
//读取打开的文件
$file_con=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_con;
}
//关闭打开的文件
fclose($fp);
//下载完成后删除文件
if($file_count >= $file_size)
{
unlink("./doc/".$fileName);
}
仅供参考
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: