• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapis obiektu do pliku w JavaScript - jak się za to zabrać? (Chrome Extension)

Object Storage Arubacloud
+1 głos
813 wizyt
pytanie zadane 12 grudnia 2016 w JavaScript przez Codexter Użytkownik (990 p.)

Witajcie,

mam problem z zapisem obiektu do pliku. Obiekt jest parsowany za pomocą JSON.stringify i następnie chciałbym zawartość umieścić w pliku na dysku. Próbuję czegoś takiego jak poniżej, ale to nie działa...

//Receiving Objects from [inject1.js]
chrome.runtime.onMessage.addListener(function (response, sender, sendResponse) {
    alert("Bedzie response zaraz");
    alert("Object Vehicle: " + "\n" + JSON.stringify(response.myVehicleObject));


    var txtFile = "/tmp/test.txt";
    var file = new File(txtFile, "write");
    var str = JSON.stringify(response.myVehicleObject);

    alert("opening file...");
    file.open();
    alert("writing file..");
    file.writeline(str);
    alert("closing file");
    file.close();

    alert("Token!!!!: " + "\n" + response.token);

    myVehicleObjects.push(response.myVehicleObject);
    myFinancialObject.push(response.myFinancialObject);

    alert("Object Vehicle: " + "\n" + myVehicleObjects.length);
    alert("Object Financial: " + "\n" + myFinancialObject.length);

    myVehicleObjects.forEach(function (veh) { alert(JSON.stringify(veh)); });
    myFinancialObject.forEach(function (fin) { alert(JSON.stringify(fin)); });
    //myVehicleObjects.forEach(function (veh) { alert(veh.Vehicle.VinNumber); });

    alert("SPRAWDZAM VIN: " + myVehicleObjects[0].Vehicle.VinNumber);
    alert("SPRAWDZAM TYP: " + myVehicleObjects[0].Type);
 
});

Z góry dzięki za pomoc :)

2 odpowiedzi

0 głosów
odpowiedź 24 czerwca 2018 przez penera Gaduła (4,040 p.)

Kod z SO od użytkownika Kanachu:
 

// Function to download data to a file
function download(data, filename, type) {
    var file = new Blob([data], {type: type});
    if (window.navigator.msSaveOrOpenBlob) // IE10+
        window.navigator.msSaveOrOpenBlob(file, filename);
    else { // Others
        var a = document.createElement("a"),
                url = URL.createObjectURL(file);
        a.href = url;
        a.download = filename;
        document.body.appendChild(a);
        a.click();
        setTimeout(function() {
            document.body.removeChild(a);
            window.URL.revokeObjectURL(url);  
        }, 0); 
    }
}

 

Działa podobno na  Chrome, FireFox and IE10

Jeżeli myślałeś o zapisie pliku na dysku z poziomu JavaScript (bez wybierania przez użytkownika miejsca docelowego)
to nie ma na to szans ze względów bezpieczeństwa. Jedyne pliki jakie możesz tworzyć bez wiedzy użytkownika to cookies

0 głosów
odpowiedź 24 czerwca 2018 przez Comandeer Guru (601,450 p.)
A próbowałeś użyć jakiegoś API, np. https://developer.chrome.com/apps/fileSystem

Samo File jedynie reprezentuje plik, nie tworzy.

Podobne pytania

0 głosów
0 odpowiedzi 147 wizyt
pytanie zadane 23 czerwca 2018 w JavaScript przez penera Gaduła (4,040 p.)
0 głosów
0 odpowiedzi 138 wizyt
pytanie zadane 10 września 2017 w JavaScript przez Filip Bartosiak Nowicjusz (120 p.)
0 głosów
1 odpowiedź 96 wizyt
pytanie zadane 1 listopada 2019 w JavaScript przez Virius Początkujący (490 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...