我需要压缩本地文件夹以便用户下载它,该文件夹是一个包含子文件夹和图像的小型网页。
我需要做的是:
我尝试使用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
答案 0 :(得分:0)
如果您使用的是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);
}
希望它会有所帮助!编码愉快:)