php - 使用 PHP ZipArchive 将文件作为变量

标签 php file symfony variables php-zip-archive

在 symfony Controller 中,我有一个文件(UploadedFile 对象)作为变量。

我想用 php ZipArchive 打开这个“变量”,然后提取它。
但是 open() 方法需要一个字符串,它是文件系统中的文件名。有什么方法可以使用 ZipArchive 处理文件而不将文件变量写入 FS?

最佳答案

您可以使用 tmpfile()创建一个临时文件,写入它,然后在 zip 中使用它。例子:

<?php

$zip = new ZipArchive();
$zip->open(__DIR__ . '/zipfile.zip', ZipArchive::CREATE);

$fp = tmpfile();
fwrite($fp, 'Test');
$filename = stream_get_meta_data($fp)['uri'];

$zip->addFile($filename, 'filename.txt');
$zip->close();

fclose($fp);

关于php - 使用 PHP ZipArchive 将文件作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40891530/

相关文章:

php - Twig 和 PHP 的问题

php - 日期插入php

php - 如何从浏览器游戏设计数据库访问

php - 如何将 GROUP_BY 与查询构建器和 mySQL >= 5.7 一起使用?

ruby - 如何在 Ruby 中的特定文件夹中创建文件

java - 带有 PathMatcher 的 DirectoryStream 不返回任何路径

symfony - doctrine2 ifnull

javascript - php:修改html标签的属性

javascript - 无法从另一个页面获取值

javascript - 使用 XMLHttpRequest 的 AJAX 文件上传