2011-10-07 8 views
5

Chcę utworzyć plik tekstowy lokalnie w moim systemie przy użyciu javascript/jquery.Jak utworzyć plik tekstowy lokalnie po stronie klienta przy użyciu JavaScript/JQuery

Próbuję tego kodu, ale nie działa w moim systemie.

Maszyna: Ubuntu 10.4 Chrome: 14.0.835.126

window.webkitRequestFileSystem(window.TEMPORARY, 1024*1024, function(fs) { 
     fs.root.getFile('~/Desktop/test.txt', {create: true}, function(fileEntry) { 
      alert(fileEntry.fullPath); //getting filepath 
     }, function() {}); 
    }, function() {}); 
+0

Dowód źle, ale nie sądzę, że jest to możliwe. Możesz ustawić plik cookie na pewno. – madc

+2

Co masz na myśli mówiąc "nie działa"? Czy widzisz błędy? Czy napisałeś ten kod od zera, czy skopiuj go z jakiegoś tutoriala lub strony referencyjnej i jaki jest adres URL? Potrzebujemy więcej informacji. –

+0

[ChecK This Fiddle] (http://jsfiddle.net/pimvdb/4FJaa/3/) Działa to tylko dla plików .bin. –

Odpowiedz

6

Jest to trochę skomplikowane, ale działa

chrome.browserAction.onClicked.addListener(createFile); 
createFile(); 

function createFile() 
{ 
    chrome.tabs.getSelected(null, function(tab) { 
     window.webkitRequestFileSystem(window.TEMPORARY, 1024*1024, function(fs) { 
      fs.root.getFile('test', {create: true}, function(fileEntry) { 
       fileEntry.createWriter(function(fileWriter) { 
        var builder = new WebKitBlobBuilder(); 
        builder.append("Saurabh"); 
        builder.append("\n"); 
        builder.append("Saxena"); 

        var blob = builder.getBlob('text/plain'); 

        fileWriter.onwriteend = function() { 
         chrome.tabs.create({"url":fileEntry.toURL(),"selected":true},function(tab){}); 
        }; 
        fileWriter.write(blob); 
       }, errorHandler); 
      }, errorHandler); 
     }, errorHandler); 
    }); 
} 
function errorHandler(e) { 
    var msg = ''; 

    switch (e.code) { 
    case FileError.QUOTA_EXCEEDED_ERR: 
     msg = 'QUOTA_EXCEEDED_ERR'; 
     break; 
    case FileError.NOT_FOUND_ERR: 
     msg = 'NOT_FOUND_ERR'; 
     break; 
    case FileError.SECURITY_ERR: 
     msg = 'SECURITY_ERR'; 
     break; 
    case FileError.INVALID_MODIFICATION_ERR: 
     msg = 'INVALID_MODIFICATION_ERR'; 
     break; 
    case FileError.INVALID_STATE_ERR: 
     msg = 'INVALID_STATE_ERR'; 
     break; 
    default: 
     msg = 'Unknown Error'; 
     break; 
    }; 

    Console.Log('Error: ' + msg); 
} 

powodu Wyjątki ze względów bezpieczeństwa, nie mogę tworzyć/modyfikować plik na lokalny System. Ale w tym kodzie faktycznie tworzę plik w katalogu, który jest przydzielony dla tymczasowych plików Google Chrome, a następnie pobiera ten plik do mojego folderu z plikami do pobrania.

To jest kod strony popup rozszerzenia do przeglądarki Chrome.

:)

+0

dobry jeden Chaitnya – Wazzzy

Powiązane problemy