Próbowałem otworzyć plik za pomocą
window.open("file:///D:/Hello.txt");
Przeglądarka nie pozwala w ten sposób otwierać pliku lokalnego, prawdopodobnie ze względów bezpieczeństwa. Chcę użyć danych pliku po stronie klienta. Jak mogę czytać lokalny plik w JavaScript?
javascript
Joval
źródło
źródło
null
na każdeonClick
zdarzenie powinno załatwić sprawę, patrz: stackoverflow.com/a/12102992/63011FileReader
, ale komentarz dodisplayContents
powyższego: zwróć uwagę, żeinnerHTML
takie ustawienie z niezaufaną zawartością może stanowić lukę w zabezpieczeniach. (Aby zobaczyć to na własne oczy, utwórz plikbad.txt
zawierający coś w rodzaju<img src="/nonexistent" onerror="alert(1);">
i zobacz, że alert zostanie wykonany - może to być bardziej złośliwy kod).innerHTML
ztextContent
. Dzięki za komentarz.DOMContentLoaded
wydarzenia.Funkcja fileReader HTML5 pozwala na przetwarzanie lokalnych plików, ale MUSZĄ one zostać wybrane przez użytkownika, nie możesz zrootować dysku użytkownika w poszukiwaniu plików.
Obecnie używam tego z wersjami programistycznymi Chrome (6.x). Nie wiem, jakie inne przeglądarki to obsługują.
źródło
Ponieważ nie mam życia i chcę mieć te 4 punkty reputacji, abym mógł pokazać swoją miłość ludziom, którzy są naprawdę dobrzy w kodowaniu (popieraj ich), podzieliłem się moją adaptacją kodu Paolo Morettiego . Po prostu użyj
openFile(
funkcji do wykonania z zawartością pliku jako pierwszym parametrem)
.źródło
clickElem()
, możesz po prostu zadzwonićfileInput.click()
. (przynajmniej w najnowszej wersji Chrome)Próbować
ale użytkownik musi podjąć działania, aby wybrać plik
Pokaż fragment kodu
źródło
Metoda żądania xmlhttp nie jest prawidłowa dla plików na dysku lokalnym, ponieważ zabezpieczenia przeglądarki nam na to nie pozwalają.Ale możemy nadpisać zabezpieczenia przeglądarki, tworząc skrót -> kliknięcie prawym przyciskiem myszy -> właściwości W przeglądarce docelowej "... location path.exe "append --allow-file-access-from-files. Jest to testowane na chrome, jednak należy uważać, aby wszystkie okna przeglądarki były zamknięte, a kod uruchamiany z przeglądarki otwartej za pomocą tego skrótu.
źródło
Nie możesz. Nowe przeglądarki, takie jak Firefox, Safari itp., Blokują protokół „pliku”. Będzie działać tylko na starych przeglądarkach.
Musisz przesłać żądane pliki.
źródło
JavaScript zazwyczaj nie może uzyskać dostępu do plików lokalnych w nowych przeglądarkach, ale obiekt XMLHttpRequest może służyć do odczytywania plików. Więc to właśnie Ajax (a nie Javascript) czyta plik.
Jeśli chcesz odczytać plik
abc.txt
, możesz napisać kod jako:Teraz
txt
zawiera zawartość pliku abc.txt.źródło