Php 用于下载的目录结构,无需将其保存在服务器上
我有一个项目,我想创建一个动态目录树结构,而不需要将其保存在服务器上,压缩并推送下载。有可能做到这一点吗?您可能正在寻找类似的东西,它可以用于在ZIP存档中创建空目录。以后可以将文件添加到该目录中 您仍然需要将生成的存档保存到磁盘Php 用于下载的目录结构,无需将其保存在服务器上,php,Php,我有一个项目,我想创建一个动态目录树结构,而不需要将其保存在服务器上,压缩并推送下载。有可能做到这一点吗?您可能正在寻找类似的东西,它可以用于在ZIP存档中创建空目录。以后可以将文件添加到该目录中 您仍然需要将生成的存档保存到磁盘 $file = tempnam("tmp", "zip"); $zip = new ZipArchive(); $zip->open($file, ZIPARCHIVE::CREATE); $zip->addEmptyDir('newDirectory')
$file = tempnam("tmp", "zip");
$zip = new ZipArchive();
$zip->open($file, ZIPARCHIVE::CREATE);
$zip->addEmptyDir('newDirectory');
$zip->addFromString('newDirectory/demo.txt', 'file contents');
$zip->close();
// Stream the file to the client
header('Content-Type: application/zip');
header('Content-Length: ' . filesize($file));
header('Content-Disposition: attachment; filename="some_archive_file.zip"');
readfile($file);
unlink($file);
如果您希望在不保存存档的情况下对存档进行流式处理,您可以尝试查看您可以将
passthru
与命令行存档实用程序结合使用,即:
passthru("tar dir0/ dir1/ dir2/dir23/dir234/ dir4/file4.txt | gzip -f");
谢谢这样我就可以实现一个功能,在下载后删除创建的文件。这难道不意味着服务器上已经有了这些目录吗?;)是的,我误解了这个问题,我认为OP只想包含目录结构的一部分,而不想将其保存到服务器的辅助文件中。