我在这里真的很困惑。所以我的项目中有什么。用户单击下载然后选择目录以保存文件,该文件将是一个zip文件。之后,我想在用户选择的同一目录中提取该zip文件。这甚至可以在一个脚本中使用吗?
这是我的PHP代码
<?php
require_once('connect.php');
// Get real path for our folder
$rootPath = realpath($_GET['uniq']);
// Name of the zip derive from the database
$zipname = $_GET['name'] . '.zip';
// Initialize archive object
$zip = new ZipArchive();
$zip->open($zipname, ZipArchive::CREATE | ZipArchive::OVERWRITE);
// Create recursive directory iterator
/** @var SplFileInfo[] $files */
$files = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($rootPath),
RecursiveIteratorIterator::LEAVES_ONLY
);
foreach ($files as $name => $file)
{
// Skip directories (they would be added automatically)
if (!$file->isDir())
{
// Get real and relative path for current file
$filePath = $file->getRealPath();
$relativePath = substr($filePath, strlen($rootPath) + 1);
// Add current file to archive
$zip->addFile($filePath, $relativePath);
}
}
// Zip archive will be created only after closing object
$zip->close();
header('Content-Type: application/zip');
header('Content-disposition: attachment; filename='.$zipname);
header('Content-Length: ' . filesize($zipname));
readfile($zipname);
?>
如果不可能是另一个问题。是否可以让用户选择一个zip文件,之后它将被提取到某个客户端目录,即。 C://xamp/extracthere/
使用javascript。
答案 0 :(得分:1)
用户将文件下载到自己的计算机后,无法控制。你不能强迫他们解压缩它,或者为此做任何其他事情。
想象一下,如果您可以控制用户本地磁盘上的文件,那将是黑客的梦想。在每种情况下出于类似的原因,使用PHP和JavaScript都是不可能的。