Talofa, uo. Matagofie i luga o aʻu 'au tau
Na fai mai uo ia te au e faatu se faatoaga atinae mo i latou, ma nai lo le tosoina o au mamanu patino, sa ou manatua se galuega manaia.
Ioe, aʻo leʻi eli i totonu o faʻapogai, sa ou tilotilo i le mea e tosoina ai e Chrome le faʻamaumauga zip faʻapipiʻi ma configs, ma o loʻo i ai se tuatusi e amata i le "blob:" o loʻo faʻatali mo aʻu, oops. Ua uma ona manino o le auaunaga e le maua ai se mea i luga o le ala, o le mea moni, o loʻo faia uma e js. O le mea moni, o le zip archive e gaosia e le kalani, browser, ma javascript lava ia. O na. o le matagofie o le galuega lena
Ina ua uma ona fai le galuega faatino, sa amata ona ou mafaufau po o a au filifiliga. O le galuega na faigata ona o le mea moni ou te leʻi manaʻo e alu ese mai le tulaga e tatau ona tumau pea le poloketi i luma mama, e aunoa ma se pito i tua. Ioe, o le fofo sili ona faigofie o le toso i luga nodejs ma faʻamalosia e faʻatupu se faʻamaumauga faʻatasi ma configs e faʻaaoga ai fesoʻotaʻiga tuusaʻo.
O le mea moni, e le tele ni filifiliga. Ae sili atu ona saʻo, na o le tasi na oʻo mai i lou mafaufau. Matou te manaʻomia le faʻatulagaina o configs ma maua se fesoʻotaʻiga e mafai ona matou kopiina i le faʻamafanafanaga server e maua ai se zip archive.
Ole tele o faila faila ile fa'amaumauga zip na maua e fai si mamafa, e na o ni nai kilobytes. O le tali manino o le mauaina lea o le base64 manoa mai le archive zip na gaosia ma lafo i totonu o le pa, aʻo i luga o le 'auʻaunaga ma le faʻatonuga i le faʻamafanafanaga.
echo 'base64string' | base64 --decode > config.zip
e mafai ona matou fatuina lenei lava faila zip.
I totonu o punaoa o le poloketi matou te vaʻai i se metotia mo le fausiaina o se faʻamaumauga zip:
$scope.downloadZip = function() {
var zip = new JSZip();
var sourceCodes = $window.document.querySelectorAll('main .file .code.source');
for (var i = 0; i < sourceCodes.length; i++) {
var sourceCode = sourceCodes[i];
var name = sourceCode.dataset.filename;
var content = sourceCode.children[0].children[0].innerText;
if (!$scope.isSymlink() && name.match(/^sites-available//)) {
name = name.replace(/^sites-available//, 'sites-enabled/');
}
zip.file(name, content);
if (name.match(/^sites-available//)) {
zip.file(name.replace(/^sites-available//, 'sites-enabled/'), '../' + name, {
unixPermissions: parseInt('120755', 8),
});
}
}
zip.generateAsync({
type: 'blob',
platform: 'UNIX',
}).then(function(content) {
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
});
gtag('event', $scope.getDomains().join(','), {
event_category: 'download_zip',
});
};
e fai si faigofie mea uma, faʻaaoga le faletusi
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
o mea o lo'o i totonu o le mea lea e maua mai i le fa'amaumauga o le zip.
Lelei, na o le pau lava le mea e tatau ona ou faia o le faʻaopoopoina o se isi faʻamau i tafatafa ma pe a ou kiliki i luga, ou te le faʻasaoina le faʻamaumauga zip i luga o le masini, ae maua le code base64 mai ai. Ina ua uma ona faʻataʻamilomilo, na ou maua ni metotia se 2, nai lo le naʻo le tasi downloadZip:
$scope.downloadZip = function() {
generateZip(function (content) {
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
});
gtag('event', $scope.getDomains().join(','), {
event_category: 'download_zip',
});
};
$scope.downloadBase64 = function() {
generateZip(function (content) {
var reader = new FileReader();
reader.readAsDataURL(content);
reader.onloadend = function() {
var base64 = reader.result.replace(/^data:.+;base64,/, '');
// в переменной base64 как раз нужный мне zip архив в виде base64 строки
}
});
gtag('event', $scope.getDomains().join(','), {
event_category: 'download_base64',
});
};
E pei ona e matauina, na ou siitiaina le faʻatupuina o le zip archive lava ia i le auala tumaoti generateZip, ma isi. O le AngularJS lea, ma o le tusitala lava ia e pipii i tua ma e leʻi faʻatinoina e ala i folafolaga. downloadZip na faia pea saveAs o se gaioiga, aʻo downloadBase64 na faia se mea e ese si ese. Matou te fatuina se mea FileReader na oʻo mai ia i matou i le html5 ma ua maeʻa
position: absolute;
z-index: -1;
opacity: 0;
lea na mafai ai ona ou natia uma le elemene mai le vaaiga ma tuu i luga o le itulau. Voila, ua maeʻa le galuega, ina ua ou kiliki i luga o laʻu ki, o se laina faʻapenei na tuʻuina i totonu o le pa:
echo 'base64string' | base64 --decode > config.zip
lea na na ona ou faapipiiina i totonu o le faʻamafanafanaga i luga o le 'auʻaunaga ma vave maua se faʻamaumauga zip ma faʻaoga uma.
Ma, ioe, na ou auina atu se talosaga toso i le tusitala, aua ... e malosi ma ola le poloketi, ou te fia vaʻai i faʻamatalaga mai le tusitala ma maua laʻu lava ki) Mo i latou e fiafia, o le
Manuia le atina'e tagata uma)
puna: www.habr.com