簡體   English   中英

如何壓縮本地文件夾並下載?

[英]how to zip local folder and download it?

我需要壓縮本地文件夾以便用戶下載它,該文件夾是一個包含子文件夾和圖像的小型網頁。

我需要做的是:

  1. 創建一個文本文件(我已經有這個)
  2. 用我已經創建的文本文件壓縮我想要的文件夾(這是我被卡住的地方)

我嘗試使用jszip-utils,但無法正常工作。

function descargaPlantilla(){
    let zip = new JSZip();
     var filename = "imagenes.html";

    var blob = new Blob([result], {
        type: "text/plain;charset=utf-8"
    });

    saveAs(blob, filename);  


    SZipUtils.getBinaryContent("/Users/ricardowallacelimon/E4", function (err, data) {
        if (err) {
            throw err; // or handle the error
        }
        zip.file("/Users/ricardowallacelimon/E4", data, { binary: true });
    });




}

我得到這些錯誤:

TypeError: global.JSZipUtils is undefinedjszip-utils-ie.js:36:1ReferenceError: SZipUtils is not defined4 cenidet.js:180:5

ReferenceError: SZipUtils is not defined

如果您使用的是Laravel 5,則可以使用new ZipArchive 下面的例子:

private function packIntoZip(Logo $logo, array $files)
{
    $userLogoDir = resource_path('prepared-zip-files/' . $logo->user_id);

    $zipFilePath = $userLogoDir . '/zip-file';
    $this->createFolderIfNotExisting($zipFilePath);

    $zip          = new ZipArchive();
    $zipFileFinal = $zipFilePath . '/wiz_logo.zip';
    $zip->open($zipFileFinal, ZIPARCHIVE::CREATE | ZIPARCHIVE::OVERWRITE);

    foreach ($files as $file) {
        $zip->addFile($file, basename($file));
    }

    $zip->addFile($this->informationPdfBasic, basename($this->informationPdfBasic));

    $zip->close();

    return $zipFileFinal;
}

然后在控制器中:

public function show(Logo $logo)
{
    $this->authorize('view', $logo);

    $logoFilesDownloader = new LogoFilesDownloader();
    $file = $logoFilesDownloader->prepareZip($logo);

    return Response::download($file);
}

希望對您有所幫助! 快樂的編碼:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM