Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt wczytujący plik z komputera
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Lepikur
Witam, chce stworzyć skrypt który ma przetwarzać dane z pliku xml, który mu wskaże w komputerze. Nie mam na stałe wpisanej nazwy tego pliku w skrypcie tylko chce wskazać jego lokalizacje na dysku... coś na kształt wczytywania np załączników w mailu. Czy ktoś robił coś podobnego? ...ja nie bardzo sobie radzę

Pozdrawiam
batman
Nie ma takiej możliwości. Javascript nie ma dostępu do plików na dysku użytkownika.
kmike
  1. <input type="file" name="plik" />
  2. </form>

Formularzem wybierasz plik z dysku, a później robisz z nim co chcesz.
Lepikur
Ok, tez pozniej na to wpadłem, czyli rozumiem ze jak wczytam np dane22.xml to zmienna:
  1. "plik"
bedzie miała wartość
  1. dane22.xml

...i każda funkcja w js, której argument wymaga podania nazwy pliku przyjmie taką zmienną? I poprawnie otworzy zawartość?
thek
Przecież już Ci napisano... JS sam z siebie nie ma dostępu do plików na komputerze użytkownika! Jak sobie wyobrażasz ile danych by Ci podwędzili ludzie gdyby tak było można? Chłopie... Ja Ci w ten sposób mógłbym podebrać plik systemowy z hasłami i loginami userów i masz rękę w nocniku. Możesz najwyżej userowi powiedzieć że ma wybrać plik, przesyłasz go na serwer, obrabiasz i zwracasz wynik operacji do przeglądarki. Ale nic ponadto.
Lepikur
tak, juz to zrozumiałem, nie chce na kompie od kumpla dostać sie ze swojej strony www na mój dysk twardy i sobie w plikach grzebać tylko chciałem zapewnić użytkownikowi strony możliwość wczytania do skryptu swojego pliku z dysku.
Ale mam jedynie pytanie czy po takim kodzie html:
  1. <input type="file" name="plik" />
  2. </form>

zmienna plik (typu string?) bedzie dostępna dla skryptów javy?
A jesli nie to jak to zrobić żeby java rozumiała plik='dane01.xml'
..ewentualnie alternatywnym dla mnie rozwiązaniem bedzie wiedza w jaki sposób java może uzyskać dostęp do zmiennej php np: $plik_nazwa

Pozdrawiam
erix


Nie, nie będzie. Zapomnij, bo NIE MA takiej możliwości. Ale może... - powtarzam: nie da się.

Cytat
..ewentualnie alternatywnym dla mnie rozwiązaniem bedzie wiedza w jaki sposób java może uzyskać dostęp do zmiennej php np: $plik_nazwa

Albo daj gdzieś echo, albo użyj AJAX.
Lepikur
Da się... zmienną "plik" z formularza html przekazujemy do php, a z php przekazujemy do javaScript.
czyli:
  1. <form enctype="multipart/form-data" action="index.php" method="POST">
  2. <input name="plik" type="file" />
  3. <input type="submit" value="Wyslij plik" />

  1. <?php
  2. $plik_nazwa = $_FILES['plik']['name'];
  3. />

  1. <script type='text/javascript'>
  2. var nazwa_pliku="<?php echo $plik_nazwa; ?>";


...tym samym zmienna js nazwa_pliku odnosi sie do zmiennej "plik" z formularza guitar.gif
thek
Ja nie mogę... Zobacz na mój post 3 godziny ( 13:56 ) przed Twoim:
Cytat
Możesz najwyżej userowi powiedzieć że ma wybrać plik, przesyłasz go na serwer, obrabiasz i zwracasz wynik operacji do przeglądarki. Ale nic ponadto.
To samo co Ty napisałeś, ale bez rzucania kodem. Jeśli na dodatek zastosujemy coś o czym nie wspomniałem, a więc AJAX, to nawet user może nie zauważyć nic jeśli pliczek jest malutki, bo strona się nie przeładuje.
erix
Nie ma uploadu via AJAX, zacznijmy od tego. tongue.gif
thek
Spójrz w google na: file upload ajax winksmiley.jpg
erix
To też nie jest AJAX, tylko wysłanie formularza z targetem do ramki. Z AJAX nie ma nic wspólnego.
Crozin
@thek: To są wszystko tak naprawdę uploady via iframe. winksmiley.jpg JavaScript nie ma przecież dostępu do treści pliku, więc jak miałby go wysłać.
thek
Mae culpa... Nie miałem na myśli tych pierwszych tylko plugin do jquery smile.gif Dopiero gdy przejrzałem kod to zauważyłem, że iframe'a sobie dynamicznie on dodaje i normalnie z poziomu kodu strony go nie ma i nie trzeba dodawać smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.