برای آپلود فایل زیپ و استخراج تصاویر داخل آن با نام اصلی در پی اچ پی، می‌توانید از کد زیر استفاده کنید:

<?php
if(isset($_FILES['zip_file'])){
    $errors = array();
    $file_name = $_FILES['zip_file']['name'];
    $file_size = $_FILES['zip_file']['size'];
    $file_tmp = $_FILES['zip_file']['tmp_name'];
    $file_type = $_FILES['zip_file']['type'];
    $file_ext = strtolower(end(explode('.',$_FILES['zip_file']['name'])));

    $extensions= array("zip");

    if(in_array($file_ext,$extensions)=== false){
        $errors[]="Extension not allowed, please choose a ZIP file.";
    }

    if($file_size > 2097152){
        $errors[]='File size must be exactly 2 MB';
    }

    if(empty($errors)==true){
        $zip = new ZipArchive;
        if($zip->open($file_tmp) === TRUE){
            for($i = 0; $i < $zip->numFiles; $i++){
                $filename = $zip->getNameIndex($i);
                $fileinfo = pathinfo($filename);
                $file_extension = strtolower($fileinfo['extension']);
                if(in_array($file_extension, array("jpg", "jpeg", "png", "gif"))){
                    $zip->extractTo('./', array($filename));
                }
            }
            $zip->close();
            echo "Images extracted successfully.";
        }else{
            echo "Failed to extract images.";
        }
    }else{
        print_r($errors);
    }
}
?>
<form action="" method="POST" enctype="multipart/form-data">
    <input type="file" name="zip_file">
    <input type="submit" value="Extract Images">
</form>

این کد با توجه به فرمی که در پایین آن قرار دارد، فایل زیپی که کاربر انتخاب کرده است را بررسی کرده و در صورتی که فرمت فایل زیپ جایز بود و حجم آن کمتر از ۲ مگابایت بود، تصاویر داخل آن را استخراج می‌کند. نام تصاویر استخراج شده همانند نام اصلی آن‌ها در فایل زیپ باقی می‌ماند، و در روت پوشه سایت قرار می‌گیرند. پس از استخراج تصاویر، پیامی به کاربر نمایش داده می‌شود که موفقیت عملیات را به او اطلاع می‌دهد. در صورتی که استخراج موفقیت آمیز نشد، پیامی به کاربر نمایش داده می‌شود که خطا را توضیح می‌دهد


原文地址: https://www.cveoy.top/t/topic/cmJQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录