我试图将文件从一个文件夹保存到另一个文件夹.zip文件夹放在不同的目录中.我写了以下代码:
archive.php
<?php
$zip = new ZipArchive();
$zip->open('example.zip', ZipArchive::CREATE);
$srcDir = "/home/sam/uploads/";
$files= scandir($srcDir);
//var_dump($files);
unset($files[0],$files[1]);
foreach ($files as $file) {
$zip->addFile("{$file}");
}
$zip->close();
?>
Run Code Online (Sandbox Code Playgroud)
但遗憾的是我无法创建.zip文件夹.我错过了什么步骤?
Dhr*_*sha 27
$zip = new ZipArchive();
$DelFilePath="first.zip";
if(file_exists($_SERVER['DOCUMENT_ROOT']."/TEST/".$DelFilePath)) {
unlink ($_SERVER['DOCUMENT_ROOT']."/TEST/".$DelFilePath);
}
if ($zip->open($_SERVER['DOCUMENT_ROOT']."/TEST/".$DelFilePath, ZIPARCHIVE::CREATE) != TRUE) {
die ("Could not open archive");
}
$zip->addFile("file_path","file_name");
// close and save archive
$zip->close();
Run Code Online (Sandbox Code Playgroud)
这里TEST是您的项目文件夹名称.
您可以根据需要定义路径.
Sam*_*Sam 13
是的,我已经解决了我的问题.
在这里,我刚刚更换了代码
$zip->addFile("{$file}");
Run Code Online (Sandbox Code Playgroud)
与代码
$zip->addFromString(basename($file), file_get_contents($file));
Run Code Online (Sandbox Code Playgroud)
并完成我的工作.:)
试试这个代码:
<?php
$zip = new ZipArchive;
if ($zip->open(getcwd() . '/test.zip', ZipArchive::CREATE) === TRUE) {
$zip->addFile(getcwd() . '/file.txt', 'newname.txt');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>
Run Code Online (Sandbox Code Playgroud)
创建一个新的 zip 文件
$zip = new ZipArchive;
if ($zip->open('test_new.zip', ZipArchive::CREATE) === TRUE)
{
// Add files to the zip file
$zip->addFile('test.txt');
$zip->addFile('test.pdf');
// Add random.txt file to zip and rename it to newfile.txt
$zip->addFile('random.txt', 'newfile.txt');
// Add a file new.txt file to zip using the text specified
$zip->addFromString('new.txt', 'text to be added to the new.txt file');
// All files are added, so close the zip file.
$zip->close();
}
Run Code Online (Sandbox Code Playgroud)
覆盖现有的 zip 文件
$zip = new ZipArchive;
if ($zip->open('test_overwrite.zip', ZipArchive::OVERWRITE) === TRUE)
{
// Add file to the zip file
$zip->addFile('test.txt');
$zip->addFile('test.pdf');
// All files are added, so close the zip file.
$zip->close();
}
Run Code Online (Sandbox Code Playgroud)
创建一个新的 zip 文件并将文件添加到文件夹中
$zip = new ZipArchive;
if ($zip->open('test_folder.zip', ZipArchive::CREATE) === TRUE)
{
// Add files to the zip file inside demo_folder
$zip->addFile('text.txt', 'demo_folder/test.txt');
$zip->addFile('test.pdf', 'demo_folder/test.pdf');
// Add random.txt file to zip and rename it to newfile.txt and store in demo_folder
$zip->addFile('random.txt', 'demo_folder/newfile.txt');
// Add a file demo_folder/new.txt file to zip using the text specified
$zip->addFromString('demo_folder/new.txt', 'text to be added to the new.txt file');
// All files are added, so close the zip file.
$zip->close();
}
Run Code Online (Sandbox Code Playgroud)
创建一个新的 zip 文件并将文件移动到不同的文件夹中
$zip = new ZipArchive;
if ($zip->open('test_folder_change.zip', ZipArchive::CREATE) === TRUE)
{
// Add files to the zip file
$zip->addFile('text.txt', 'demo_folder/test.txt');
$zip->addFile('test.pdf', 'demo_folder1/test.pdf');
// All files are added, so close the zip file.
$zip->close();
}
Run Code Online (Sandbox Code Playgroud)
使用目录中的所有文件创建一个 zip 文件
$zip = new ZipArchive;
if ($zip->open('test_dir.zip', ZipArchive::OVERWRITE) === TRUE)
{
if ($handle = opendir('demo_folder'))
{
// Add all files inside the directory
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != ".." && !is_dir('demo_folder/' . $entry))
{
$zip->addFile('demo_folder/' . $entry);
}
}
closedir($handle);
}
$zip->close();
}
Run Code Online (Sandbox Code Playgroud)
将多个文件和目录添加到一个 zip 文件
$zip = new ZipArchive;
if ($zip->open('test_files_dirs.zip', ZipArchive::OVERWRITE) === TRUE)
{
// Add directory1
if ($handle = opendir('demo_folder/directory1/'))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$zip->addFile('demo_folder/directory1/' . $entry);
}
}
closedir($handle);
}
// Add directory2
if ($handle = opendir('demo_folder/directory2/'))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$zip->addFile('demo_folder/directory2/' . $entry);
}
}
closedir($handle);
}
// Add directory3
if ($handle = opendir('demo_folder/directory3/'))
{
while (false !== ($entry = readdir($handle)))
{
if ($entry != "." && $entry != "..")
{
$zip->addFile('demo_folder/directory3/' . $entry);
}
}
closedir($handle);
}
// Add more files
$zip->addFile('demo_folder/index.txt');
$zip->close();
}
Run Code Online (Sandbox Code Playgroud)
来源:https : //www.virendrachandak.com/techtalk/how-to-create-a-zip-file-using-php/