PHP - 在php中创建zip后,是否可以将zip文件上传到数据库?

时间:2017-03-30 05:54:27

标签: php

所以,我在youtube视频plunker上观看了如何使用php压缩文件的教程。这是我复制的代码。

这是上传zip的表单。我选择7个文件,然后命名存档名称" testing"。

here

点击"将文件添加到Zip"后,文件被压缩并发送到目录。

zip file

这些是代码

HTML代码:

<?php

if(isset($_POST['create']))
{
$filesArray = $_FILES["files"];

for($num = 0; $num < count($filesArray["name"]); $num++)
{
    $fileName = $filesArray["name"][$num];
    $tempName = $filesArray["tmp_name"][$num];

    move_uploaded_file($tempName,"tmp/".$fileName);
}

$archiveName = $_POST['name'].".zip";
$filesArrayNames = $_FILES["files"]["name"];

$zipsDir = scandir("zips/");
$error = false;
foreach($zipsDir as $zipDirFile)
{
    if($zipDirFile == $archiveName)
    {
        $error = true;
        break;
    }
}

if($error == false)
{
    $tmpDir = scandir("tmp/");
    $zip = new ZipArchive;
    $zip->open("zips/".$archiveName, ZipArchive::CREATE);

    for($num = 0; $num < count($filesArray["name"]); $num++)
    {
        $fileName = $filesArray["name"][$num];
        foreach($tmpDir as $tmpDirFile)
        {
            if($tmpDirFile == $fileName)
            {
                $zip->addFile("tmp/".$fileName);
                echo "Adding: ".$fileName."<br />";
            }
        }
    }
    $zip->close();

    for($num = 0; $num < count($filesArray["name"]); $num++)
    {
        $fileName = $filesArray["name"][$num];
        foreach($tmpDir as $tmpDirFile)
        {
            if($tmpDirFile == $fileName)
            {
                unlink("tmp/".$fileName);
            }
        }
    }
}


else
{
    echo "Name already exists";
}
}

if (isset($_POST['upload']))
{
    //code to add for uploading zip file to database

}

?>

PHP代码:

brew install swiftlint

但是文件是通过php压缩后是否可以上传zip文件?我希望用户在压缩文件后上传文件。

1 个答案:

答案 0 :(得分:0)

PHP无法在用户计算机(客户端)上运行,但在服务器中,因此如果您想压缩然后上传文件,请考虑在客户端运行的脚本,如javascriptangularjsjquery以及其他可以使用的库)用来压缩文件和php以接受它们进入服务器。