我正在尝试从html帖子生成一个zip文件。帖子数据是一串由逗号分隔的urldecoded图像名称。
如果我手动输入字符串作为$ files数组,则会正确生成zip。但是,如果我使用表示字符串的变量,则不会生成任何内容。我也没有看到任何错误。有关变量字符串的特定示例,请参阅注释行。
我看不出一个人怎么会工作而另一个人不会。帖子数据显然会有所不同,所以我需要弄清楚如何使变量发挥作用。任何帮助将不胜感激。
谢谢!
<?php
$raw_post = file_get_contents('php://input');
$imstr = "'" . str_replace(",", "', '", $raw_post) . "'";
echo($imstr);
// echo($imstr); returns 'image--11-15-2013 (1).jpeg', image--11-15-2013 (2).jpeg', image--11-15-2013 (3).jpeg'
$files = array($imstr);
// This works as expected -> $files = array('image--11-15-2013 (1).jpeg', image--11-15-2013 (2).jpeg', image--11-15-2013 (3).jpeg');
$zipname = 'file.zip';
$zip = new ZipArchive;
$zip->open($zipname, ZipArchive::CREATE);
foreach ($files as $file) {
$zip->addFile($file);
}
$zip->close();
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename=filename.zip');
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
?>