Страница продукта Opencart Сжатие всех изображений в ZIP-файл для загрузки

Привет, я хочу показать галерею изображений на своем сайте, а затем иметь ссылку, которая позволяет пользователю загрузить всю галерею изображений.

  • Все изображения автоматически конвертируются в zip-файл и отображаются на странице продукта, чтобы «загрузить изображение».

Как это: - введите здесь описание изображения


person dhara chauhan    schedule 20.08.2018    source источник
comment
Что вы пробовали?   -  person DigitCart    schedule 20.08.2018
comment
php код компрессора файла и получить все изображение со страницы одного продукта и попытаться преобразовать в zip-файл, но не преуспел в этом   -  person dhara chauhan    schedule 20.08.2018


Ответы (1)


Продукт.php

Создать новую функцию

public function downloadcatalog(){
$this->load->model('catalog/product'); 
        $product_info = $this->model_catalog_product->getProduct($this->request->get['product_id']);
        
        $results = $this->model_catalog_product->getProductImages($this->request->get['product_id']);
        
            foreach ($results as $result) {
                $files[] = 'image/'.$result['image'];
            }
         
        $zip = new ZipArchive();
        
        # create a temp file & open it
        $tmp_file = tempnam('.', '');
        $zip->open($tmp_file, ZipArchive::CREATE);
        
        # loop through each file
        foreach ($files as $file) {
            # download file
            $download_file = file_get_contents($file);
        
            #add it to the zip
            $zip->addFromString(basename($file), $download_file);
        }
        
        # close zip
        $zip->close();
        $file_name = $product_info['name'].'.zip';
        # send the file to the browser as a download
        /*header('Content-disposition: attachment; filename="'.$product_info['name'].'"');
        header('Content-type: application/zip');*/
        header("HTTP/1.1 200 OK");
        header("Pragma: public");
        header("Expires: 0");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Cache-Control: public");
        header("Content-Description: File Transfer");
        header("Content-type: application/zip");
        header('Content-Disposition: attachment; filename="'.$file_name.'"');
        header("Content-Transfer-Encoding: binary");
        header('Content-Length: ' . filesize($tmp_file));

        //$zip->close();
        //readfile($zipname);
                readfile($tmp_file);
                unlink($tmp_file);
            }

====================================================================

Продукт.php

(Контроллер индекса добавляется раньше)

$data['column_left'] = $this->load->controller('common/column_left');
$data['download_catalog'] = $this->url->link('product/product/downloadcatalog', 'product_id=' . $this->request->get['product_id']);
person W3Stacks .com    schedule 12.01.2021