[英]how to zip local folder and download it?
我需要壓縮本地文件夾以便用戶下載它,該文件夾是一個包含子文件夾和圖像的小型網頁。
我需要做的是:
我嘗試使用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.