javascript - 如何避免在 php 中生成带有文件夹的 zip 文件?
问题描述
我有以下问题:在我的网站上,人们可以下载带有图片的 zip 文件。根据图像,它们位于一个目录或另一个目录中。下载是通过对返回此 zip 文件的 php 文件的 ajax 调用进行的。问题是 zip 文件复制了我在本地拥有的文件夹结构,因此在 zip 内部有几个文件夹,直到我到达文件。我想知道如何将所有文件放在一个文件夹中,这样当您打开 zip 时,您会看到图像。
这是我的ajax调用:
$.ajax({
type: "POST",
url: "download.php",
data: {
'imagenes': imagenes,
'nombreZip': nombreZip
},
success: function(data){
window.location = data;
$('#fondoDescarga').fadeOut();
}
});
其中“imagenes”是一个包含文件的数组,包括根目录,例如:
0:“contenido/all/MyFolder/Image.tif” 1:“contenido/all/MyFolder/Image2.tif” 2:“contenido/all/MyFolder/Image3.tif”
这是生成 zip 的 php 文件:
<?php
$error = ""; //error holder
$post = $_POST;
if(extension_loaded('zip')) {
// Checking ZIP extension is available
// Checking files are selected
$zip = new ZipArchive(); // Load zip library
$zip_name = $_POST['nombreZip'].".zip"; // Zip name
if($zip->open($zip_name, ZIPARCHIVE::CREATE)!==TRUE) {
// Opening zip file to load files
$error .= "* Sorry ZIP creation failed at this time";
}
foreach($post['imagenes'] as $file) {
$zip->addFile($file);
}
$zip->close();
echo $zip_name;
} else {
$error .= "* You dont have ZIP extension";
}
?>
它非常简单并且有效,但是强迫用户浏览这么多文件夹有点烦人。
谢谢 !
解决方案
推荐阅读
- python - 将自定义标记应用于 pytest 参数化标记的特定值
- regex - 我如何在正则表达式中优先考虑我的“或”条件。我对编码还很陌生
- java - 如何在 android 中绘制从 Firebase 数据库中检索到的数据
- javascript - 通过 js/JavaScript 从网络摄像头捕获图像
- list - 将元素添加到符合 Prolog 中特定条件的另一个列表
- python-3.x - 如果父进程在 python 中崩溃,确保子进程被杀死。解决方案必须支持所有操作系统
- azure - 如何执行一次 Azure 函数?
- python - 将 Python 错误检索到 Oracle 数据库中
- remote-access - Expect 脚本中的 scp 适用于少数文件,但不适用于很多文件
- python - 多对矩阵上的 Numpy.dot