2011-07-23 3 views
10

Próbuję na Firefoxie, IE 9, Chrome i Opera kodu poniżej, ale funkcja onInitFs (fs) nie zostanie wywołany.if Dodam "()" do OnInitFs w oknie. requestFileSystem (window.PERSISTENT, 1024 * 1024, onInitFs, errorHandler), która funkcja jest wywoływana, ale fs ma wartość null? Czy ktoś wie, jak rozwiązać ten problem? Próbuję w systemie Windows 7. Bardzo doceniam twoją pomoc.window.requestFileSystem nie działa

<!DOCTYPE HTML> 
`<html> 
    <head> 
    <script> 
     function errorHandler(e){ 
      alert("errorrrr"); 
     } 
     function onInitFs(fs){ 
     alert("onInitFs"); 
     } 
     function readClick(){ 
       if (window.webkitRequestFileSystem) { 
        window.webkitRequestFileSystem(window.PERSISTENT, 1024*1024,onInitFs,errorHandler); 
       } 
       else { 
        window.requestFileSystem(window.PERSISTENT, 1024*1024, onInitFs, errorHandler); 
       } 

      alert("read finishsssss"); 
     } 
     </script> 
    </head> 
<body> 
<input type="button" value="Read dir" onclick="readClick()"> 
    <ul id="filelist"></ul> 
</body> 
</html> 
+0

pokrewne: http://stackoverflow.com/questions/19802032/how-can-a-chrome-extension-save-many-files-to-a-user-specified-directory/19813816 # comment71099517_19813816 – Pacerier

Odpowiedz

12

Tylko chrom obsługuje jako wersję webkitRequestFileSystem.

Żaden z innych przeglądarek (FF6, IE9, Op11) wsparcie to

+0

1.thnx ale próbuję również na chrome z webkitRequestFileSystem, a funkcja onInitFs (fs) nie działa, tzn. Nie jest wywoływana – Tony2

+0

2. moje drugie pytanie brzmi: czy masz teraz jakikolwiek sposób na uzyskanie lista plików danego folderu, która działałaby w prawie wszystkich przeglądarkach? – Tony2

+0

@ Tony2 no. requestFileSystem udostępnia piaskownicowy system plików. Nie można uzyskać bezpośredniego dostępu do plików lokalnych. Możesz poprosić użytkowników o przesłanie pliku poprzez '' choć – Raynos

3

pomijając kwestię bezpieczeństwa, że ​​nie można „Przeglądaj” lokalne pliki ze strony internetowej, na Twoje pytanie należy odpowiedzieć:

przypadku żądania PERSISTENT system plików, na który musisz najpierw poprosić o przydział. Spróbuj że zamiast:

window.storageInfo.requestQuota(PERSISTENT, 1024*1024, 
    function(grantedBytes) { 
     window.requestFileSystem(window.PERSISTENT, grantedBytes, onInitFs, errorHandler); 
    }, 
    errorHandler 
);