Ekele, ndị enyi. Mara mma na sava ọgụ m
Ndị enyi m gwara m ka m guzobere ha ugbo mmepe, kama ịdọrọ ha ndebiri m, echetara m otu ọrụ na-atọ ụtọ.
N'ezie, tupu m abanye n'ime isi mmalite, elere m anya ebe Chrome na-adọta ebe nchekwa zip emepụtara na nhazi, ebe adreesị na-amalite na "blob:" na-echere m, oops. Ọ pụtalarị na ọrụ ahụ anaghị emepụta ihe ọ bụla n'ụzọ, n'eziokwu, ọ bụ js. N'ezie, onye ahịa, ihe nchọgharị, na javascript n'onwe ya na-emepụta ebe nchekwa zip ahụ. Ndị ahụ. mma bụ na oru ngo
Mgbe m kwụsịrị ọrụ ahụ, amalitere m iche echiche banyere nhọrọ m bụ. Ọrụ ahụ gbagwojuru anya site n'eziokwu na achọghị m ịhapụ ọnọdụ ahụ na ọrụ ahụ kwesịrị ịnọgide na-adị ọcha n'ihu, na-enweghị ihe ọ bụla azụ azụ. N'ezie, ngwọta kachasị mfe ga-abụ ibuli nodejs ma manye ya ka ọ mepụta ebe nchekwa na nhazi site na iji njikọ kpọmkwem.
N'ezie, ọnweghị ọtụtụ nhọrọ. Kpọmkwem, ọ bụ naanị otu onye bịara n'uche. Anyị kwesịrị ịtọ ntọala wee nweta njikọ nke anyị nwere ike idetuo na njikwa ihe nkesa iji nweta ebe nchekwa zip.
Ọtụtụ faịlụ ederede dị na ebe nchekwa zip nke arụpụtara tụrụ ntakịrị ntakịrị, n'ezie kilobytes ole na ole. Ihe ngwọta doro anya bụ ịnweta eriri base64 site na ebe nchekwa zip emepụtara wee tụba ya na nchekwa ahụ, ebe ọ nọ na ihe nkesa nwere iwu na njikwa.
echo 'base64string' | base64 --decode > config.zip
anyị nwere ike ịmepụta otu faịlụ zip a.
N'ime akụrụngwa ọrụ anyị na-ahụ usoro maka ịmepụta ebe nchekwa 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',
});
};
ihe niile dị nnọọ mfe, na-eji ụlọ akwụkwọ
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
ebe ọdịnaya bụ ihe na-akpata blob nke ebe nchekwa zip.
Ọ dị mma, naanị ihe m ga-eme bụ ịgbakwunye bọtịnụ ọzọ n'akụkụ ya ma mgbe m pịrị ya, agaghị m echekwa faịlụ zip na-apụta na ihe nchọgharị ahụ, mana nweta koodu base64 na ya. Mgbe m gbasịrị ntakịrị, enwetara m ụzọ abụọ, kama naanị otu nbudataZip:
$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',
});
};
Dịka ị chọpụtala, ebugara m ọgbọ nke zip Archive n'onwe ya na usoro geneZip nkeonwe, yana ndị ọzọ. Nke a bụ AngularJS, na onye edemede n'onwe ya na-arapara n'ịkpọghachi azụ na emeghị ya site na nkwa. downloadZip ka na-echekwa dị ka mmepụta, ebe downloadBase64 mere ihe dịtụ iche. Anyị na-emepụta ihe FileReader bịara anyị na html5 ma bụrụlarị nke ọma
position: absolute;
z-index: -1;
opacity: 0;
nke mere ka m ma zoo mmewere site na anya wee hapụ ya n'ezie na ibe. Voila, arụchara ọrụ ahụ, mgbe m pịrị bọtịnụ m, etinyere ahịrị dị ka nke a na nchekwa:
echo 'base64string' | base64 --decode > config.zip
nke m debere na console na sava ahụ wee nweta ebe nchekwa zip ozugbo yana nhazi niile.
Ma, n'ezie, ezigara m onye edemede akwụkwọ mkpesa, n'ihi na ... oru ngo a na-arụsi ọrụ ike ma dị ndụ, ọ ga-amasị m ịhụ mmelite sitere na onye edemede wee nwee bọtịnụ nke m) Maka ndị nwere mmasị, ebe a bụ
Ezi mmepe onye ọ bụla)
isi: www.habr.com