Tena koutou e hoa ma. Ataahua i runga i aku tūmau whawhai
I tono mai nga hoa ki ahau ki te whakatu i tetahi paamu whanaketanga mo ratou, a kaua e toia aku tauira motuhake, ka mahara ahau ki tetahi kaupapa whakamere
Ae ra, i mua i te keri ki nga punawai, ka titiro ahau ki te wahi e kumea ana e Chrome te puranga zip i hangaia me nga whirihora, a kei reira tetahi wahitau e timata ana me te "blob:" e tatari ana ki ahau, aue. Kua maarama kua kore te ratonga e whakaputa i tetahi mea i runga i te huarahi, inaa, he mea mahi katoa na js. Ae, na te kiritaki, te kaitirotiro, me te javascript ano i hanga te puranga zip. Ko era. ko te ataahua ko te kaupapa
Whai muri i te marau i te kaupapa, ka tiimata ahau ki te whakaaro he aha aku whiringa. I uaua te mahi na te mea kaore au i pai ki te kotiti ke i te tikanga kia noho tonu te kaupapa hei parakore o mua, kaore he pito-muri. Ae ra, ko te otinga tino ngawari ko te tango i nga nodejs ka tohe ki te whakaputa i tetahi puranga me nga whirihora ma te whakamahi hononga tika.
Inaa, kaore i maha nga whiringa. Ko te mea tika, kotahi anake i puta ki te hinengaro. Me whakarite e matou nga whirihora me te tiki hononga ka taea e matou te kape ki te papatohu tūmau hei tiki i te puranga zip.
He iti noa te taumaha o te maha o nga konae tuhinga i roto i te puranga zip, he iti noa nga kiropaita. Ko te otinga tino kitea ko te tiki i te aho base64 mai i te puranga zip i hangaia ka maka ki roto i te kaitarai, i runga i te tūmau me te whakahau i roto i te papatohu.
echo 'base64string' | base64 --decode > config.zip
Ka taea e matou te hanga i tenei konae konae.
I roto i nga rauemi kaupapa ka kite tatou i tetahi tikanga mo te whakaputa i te puranga 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',
});
};
he tino ngawari nga mea katoa, ma te whakamahi i te whare pukapuka
saveAs(content, 'nginxconfig.io-' + $scope.getDomains().join(',') + '.zip');
ko te ihirangi ko te ahanoa pupuhi o te puranga zip.
Ae, ko nga mea katoa i mahia e au ko te taapiri i tetahi atu paatene ki te taha ka paatohia e au, kaore au e penapena i te konae konae ki te tirotiro, engari ka whiwhi i te waehere base64. I muri i te kopikopiko noa, ka whiwhi au i nga tikanga e 2, hei utu mo te kotahi 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',
});
};
I kite pea koe, i nukuhia e ahau te reanga o te puranga zip ake ki te tikanga whakaputaZip tūmataiti, me era atu. Ko te AngularJS tenei, a ko te kaituhi tonu e piri ana ki nga waea whakahoki kaore i whakatinanahia ma nga kupu whakaari. I mahi tonu a downloadZip hei whakaputanga, i te mea he rereke te mahi a downloadBase64. Ka hangaia e matou he ahanoa FileReader i tae mai ki a matou i roto i te html5 a kua tino rite
position: absolute;
z-index: -1;
opacity: 0;
i taea e au te huna i te huānga mai i te tirohanga ka waiho tonu ki te wharangi. Voila, kua oti te mahi, i taku paato i taku paatene, ka tuu he rarangi penei ki roto i te papa:
echo 'base64string' | base64 --decode > config.zip
i whakapiri noa ahau ki roto i te papatohu i runga i te tūmau ka whiwhi tonu ahau i te puranga kōtui me nga whirihora katoa.
A, ko te tikanga, i tukuna e ahau he tono kume ki te kaituhi, na te mea... he kaha, he ora te kaupapa, ka pirangi au ki te kite i nga whakahou mai i te kaituhi me taku ake paatene) Mo te hunga e hiahia ana, koinei
Kia hari te whakawhanaketanga katoa)
Source: will.com