php生成文件下载后删除文件,如何使用PHP创建ZIP文件并在用户下载后删除它?

启用php_curl扩展名; (php.ini),然后使用下面的代码创建zip。

创建一个文件夹类并使用下面给出的代码:

include("class/create_zip.php");

$create_zip = new create_zip();

//$url_path,$url_path2 you can use your directory path

$urls = array(

'$url_path/file1.pdf',

'$url_path2/files/files2.pdf'

); // file paths

$file_name = "vin.zip"; // zip file default name

$file_folder = rand(1,1000000000); // folder with random name

$create_zip->create_zip($urls,$file_folder,$file_name);

$create_zip->delete_directory($file_folder); //delete random folder

if(file_exists($file_name)){

$temp = file_get_contents($file_name);

unlink($file_name);

}

echo $temp;

?>创建一个文件夹类并使用下面给出的代码:

class create_zip{

function create_zip($urls,$file_folder,$file_name){

header('Content-Type: application/octet-stream');

header('Content-Disposition: attachment; filename='.$file_name);

header('Content-Transfer-Encoding: binary');

$mkdir = mkdir($file_folder);

$zip = new ZipArchive;

$zip->open($file_name, ZipArchive::CREATE);

foreach ($urls as $url)

{

$path=pathinfo($url);

$path = $file_folder.'/'.$path['basename'];

$zip->addFile($path);

$fileopen = fopen($path, 'w');

$init = curl_init($url);

curl_setopt($init, CURLOPT_FILE, $fileopen);

$data = curl_exec($init);

curl_close($init);

fclose($fileopen);

}

$zip->close();

}

function delete_directory($dirname)

{

if (is_dir($dirname))

$dir_handle = opendir($dirname);

if (!$dir_handle)

return false;

while($file = readdir($dir_handle))

{

if ($file != "." && $file != "..")

{

if (!is_dir($dirname."/".$file))

unlink($dirname."/".$file);

else

delete_directory($dirname.'/'.$file);

}

}

closedir($dir_handle);

rmdir($dirname);

return true;

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值