我有一个目录查看器,它根据显示在网格上的目录中的文件生成行。我正在尝试添加复选框,当选中这些复选框时,这些复选框将将选定的文件添加到zip存档中。目前我的代码是
<div id="directory-list-header">
<div class="row">
<div class="col-md-7 col-sm-6 col-xs-10">File</div>
<div class="col-md-1 col-sm-2 col-xs-2 text-right">Size</div>
<div class="col-md-2 col-sm-2 hidden-xs text-right">Last Modified</div>
<div class="col-md-2 col-sm-2 col-xs-2 text-right">Select</div>
</div>
</div>
<ul id="directory-listing" class="nav nav-pills nav-stacked">
<?php foreach($dirArray as $name => $fileInfo): ?>
<li data-name="<?php echo $name; ?>" data-href="<?php echo $fileInfo['url_path']; ?>">
<a href="<?php echo $fileInfo['url_path']; ?>" class="clearfix" data-name="<?php echo $name; ?>">
<div class="row">
<span class="file-name col-md-7 col-sm-6 col-xs-9">
<i class="fa <?php echo $fileInfo['icon_class']; ?> fa-fw"></i>
<?php echo $name; ?>
</span>
<span class="file-size col-md-1 col-sm-2 col-xs-3 text-right">
<?php echo $fileInfo['file_size']; ?>
</span>
<span class="file-modified col-md-2 col-sm-2 hidden-xs text-right">
<?php echo $fileInfo['mod_time']; ?>
</span>
<span class="selected col-md-2 col-sm-2 col-xs-1 text-right">
<form method="get">
<input type="checkbox" name="selected[]" value="<?php echo $fileInfo['url_path']; ?>">
</form>
</span>
</div>我添加了<span>标记,我想我应该将选中的任何文件添加到数组中,然后使用ZipArchive()将数组发送到zip,并通过流将其提供给客户端,但是我不确定代码将如何查找复选框逻辑,因为这是我第一次进入HTML/PHP。任何帮助都将不胜感激,我已经把用户界面做好了,这只是背景工作的问题。
发布于 2017-03-29 17:57:54
从$_POST‘array[] _names’创建POST[] variables into an array?,从这个数组创建像这里的Download multiple files as a zip-file using php 6应答。
发布于 2017-03-29 17:47:52
php有一个类来完成它。
在这里了解它,http://php.net/manual/en/class.ziparchive.php。
下面的代码可以解决您的问题;
<?php
$zip = new ZipArchive;
function addFileToZip($aFileZipName, $aFileName, $fileContent){
if ($zip->open($aFileZipName) === TRUE) {
$zip->addFromString($aFileName, $fileContent);
$zip->close();
return true;
} else {
return false;
}
}
?>如果这个解释不能帮助你,请张贴你的完整代码。顺便说一句,考虑使用一种更优雅的方法来生成HTML代码,比如角形或jquery。
https://stackoverflow.com/questions/43100079
复制相似问题