Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用于下载的目录结构,无需将其保存在服务器上_Php - Fatal编程技术网

Php 用于下载的目录结构,无需将其保存在服务器上

Php 用于下载的目录结构,无需将其保存在服务器上,php,Php,我有一个项目,我想创建一个动态目录树结构,而不需要将其保存在服务器上,压缩并推送下载。有可能做到这一点吗?您可能正在寻找类似的东西,它可以用于在ZIP存档中创建空目录。以后可以将文件添加到该目录中 您仍然需要将生成的存档保存到磁盘 $file = tempnam("tmp", "zip"); $zip = new ZipArchive(); $zip->open($file, ZIPARCHIVE::CREATE); $zip->addEmptyDir('newDirectory')

我有一个项目,我想创建一个动态目录树结构,而不需要将其保存在服务器上,压缩并推送下载。有可能做到这一点吗?

您可能正在寻找类似的东西,它可以用于在ZIP存档中创建空目录。以后可以将文件添加到该目录中

您仍然需要将生成的存档保存到磁盘

$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只想包含目录结构的一部分,而不想将其保存到服务器的辅助文件中。