php zip存档正在添加没有大小的文件

php zip存档正在添加没有大小的文件,php,upload,ziparchive,Php,Upload,Ziparchive,我得到了这个工作,但当我在zip文件夹中查看所有的文件大小是0。我尝试不将文件添加到zip,但当我尝试将它们添加到zip时,大小变为0。这是为什么 这是我的php if(isset($_FILES['file'])){ $file_folder = "uploads/"; $zip = new ZipArchive(); $zip_name = time().".zip"; $open = $zip->open("zip/".$zip_name, Zip

我得到了这个工作,但当我在zip文件夹中查看所有的文件大小是0。我尝试不将文件添加到zip,但当我尝试将它们添加到zip时,大小变为0。这是为什么

这是我的php

if(isset($_FILES['file'])){

    $file_folder = "uploads/";

    $zip = new ZipArchive();
    $zip_name = time().".zip";
    $open = $zip->open("zip/".$zip_name, ZipArchive::CREATE);

    if($open === true){
        for($i = 0; $i < count($_FILES['file']['name']); $i++)
        {
        $filename = $_FILES['file']['name'][$i];
        $tmpname = $_FILES['file']['tmp_name'][$i];

        move_uploaded_file($tmpname, "uploads/".$filename);

        $zip->addFile($file_folder, $filename);
        }
    $zip->close();

    if(file_exists("zip/".$zip_name)){
    // zip is in there, delete the temp files
    echo "Works";
    for($i = 0; $i < count($_FILES['file']['name']); $i++)
    {
        $filenameu = $_FILES['file']['name'][$i];
        unlink("uploads/".$filenameu);
    }
    } else {
        // zip not created, give error
        echo "something went wrong, try again";
    }

    }
}
if(isset($\u文件['file'])){
$file_folder=“uploads/”;
$zip=新的ZipArchive();
$zip_name=time().“.zip”;
$open=$zip->open(“zip/”$zip\u name,ZipArchive::CREATE);
如果($open==true){
对于($i=0;$iaddFile($file\u folder,$filename);
}
$zip->close();
如果(文件_存在(“zip/”$zip_名称)){
//zip在那里,删除临时文件
呼应“作品”;
对于($i=0;$i
您的问题在于这一行:
$zip->addFile($file\u folder,$filename)

当前,它将路径作为第一个参数传递到
/uploads/
目录

根据
Zip::addFile
,您应该传递要添加的文件的路径(包括文件和扩展名)

因此,更改代码以包含文件名(您已经将其作为变量
$filename
,这很方便)


$zip->addFile($file\u folder.$filename,$filename)

$zip->addFile($file\u folder.$filename,$filename)试试看谢谢,它现在很好用:D