Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Javascript] Wczytanie pliku do tablicy
bAb1k
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 12.10.2012

Ostrzeżenie: (0%)
-----


Witam serdecznie.
Jestem jeszcze niezłym laikiem w JacaScript'cie, ale ogólne definicje programowania są mi znane.

Może wkleję na start jakiś fragment kodu, który by coś "zapoczątkował w temacie", a później opiszę o co mi chodzi:

  1. <!DOCTYPE HTML>
  2. <html lang='pl'>
  3. <head>
  4. <title>Pliki z cenami</title>
  5. <meta charset='utf-8' />
  6. </head>
  7. <body>
  8. <input type='file' id='plik' />
  9. <button id='przycisk'>Kliknij</button>
  10. <div id='wynik'></div>
  11.  
  12.  
  13. function Czytaj()
  14. {
  15. document.getElementById('wynik').innerHTML = 'cos sie dzieje';
  16. }
  17.  
  18. document.querySelector('#przycisk').onClick = Czytaj;
  19.  
  20. </script>
  21. </body>
  22. </html>


Jeszcze na wstępie chciałbym napisać, że nie oczekuję gotowców, chciałbym zrozumieć co piszę, abym nie musiał się upominać kolejnymi postami, czy tematami (IMG:style_emoticons/default/smile.gif)

A zatem: Chciałbym wczytać po przez Input 'file' i (najlepiej) od razu załadować plik (o tym za moment), albo dopiero po naciśnięciu button'a. Aktywowałoby to funkcję Czytaj() która by dany plik wczytała i rozłożyła na tablicę (jedna linijka to jeden indeks w tablicy) oraz oczywiście wyświetlenie tych linijek w jakimś div'ie albo czymkolwiek (IMG:style_emoticons/default/wink.gif) .

Z góry dziękuję za pomoc (IMG:style_emoticons/default/wink.gif)

[Dalsze czytanie na własną rękę (IMG:style_emoticons/default/haha.gif) ]

Rzecz jasna, później chcę zrobić możliwość edycji danego fragmentu tekstu oraz na koniec funkcję, która by zapisała ten plik (już edytowany) - zatem można się spodziewać również takich pytań/tematów, ale jednak chcę na start zrobić podstawę.

W C# zrobiłbym po prostu wczytanie pliku, przypisanie do zmiennej typu string i splitowanie do tablicy znakiem ENTER (\n - jak się nie mylę?) - no ale w JS to wygląda chyba jakoś inaczej, bo nie mogłem nawet odczytać tego pliku (IMG:style_emoticons/default/wink.gif)

Ten post edytował bAb1k 27.05.2015, 11:48:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Comandeer
post
Post #2





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


Kod
this.files[0]

Dany input, jeśli ma nadany atrybut [multiple], może służyć do wybrania kilku plików. Wówczas wszystkie są one dostępne tutaj. Rozumienie na sposób b nie ma za bardzo sensu, bo to nie input jest pierwszym z kolekcji (bo jest tylko jeden), a plik

Cytat
zatem skoro piszesz, że odpczytuje go jako tekst (String) to dlaczego nie można go wyświetlić już teraz, tylko jest potrzebna kolejna funkcja do 'załadowania' ?

Wyobraź sobie, że próbujesz w taki sposób odczytać plik, który ma spory rozmiar (np. 100 MB). Taka operacja może długo potrwać i gdyby FileReader pracował synchronicznie, to cała karta przeglądarki byłaby zamrożona aż do czasu, gdy ten wielki plik by się nie wczytał. Jeśli natomiast całość jest asynchroniczna, to podczas, gdy przeglądarka ten plik wczytuje w tle, user wciąż może korzystać z reszty strony.

Cytat
To jak za pomocą 'addEventListener('click', function(e)...' wydostać zawartość tego <p> ?

Przy pomocy własności innerHTML
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 13:21