2012-10-17 6 views
42

Mam więc podstawowe wejście do formularza o typie "file", ale chcę, aby użytkownik mógł wybrać lokalizację folderu, a nie plik.Jak uzyskać katalog folderów z pliku wejściowego HTML "file" lub w jakikolwiek inny sposób?

Jak mogę uzyskać to wejście, aby wybrać folder, a nie plik, czy jest inny sposób na zrobienie tego?

+0

Dlaczego byś wybrał, aby zapisać lokalizację folderu? – hjpotter92

+1

Czy próbujesz przesłać wszystkie pliki w wybranym folderze? –

+1

Pytanie brzmi, co zrobiłbyś z folderem, gdy już go masz? Czy chcesz przesłać wszystkie pliki w folderze? Lub zrobić coś innego z folderem? Przeglądarka zwykle nie będzie w stanie nic zrobić bezpośrednio z folderem, więc jeśli Twój plan nie przesyła zawartości, nie ma zbyt wiele logiki, aby określić folder. – Spudley

Odpowiedz

1

Najprawdopodobniej patrzysz na użycie kontrolki flash/silverlight/activeX. Sterowanie <input type="file" /> tego nie obsługuje.

Jeśli nie masz nic przeciwko temu, że użytkownik wybierze plik jako środek do uzyskania jego katalogu, możesz być w stanie powiązać z nim zdarzenie change, a następnie usunąć fragment nazwy pliku i zapisać gdzieś ścieżkę - ale to jest tak dobrze, jak to się robi.

Należy pamiętać, że strony internetowe są zaprojektowane do interakcji z serwerami. Nic w dostarczaniu lokalnego katalogu do zdalnego serwera jest "typowe" (serwer nie może uzyskać do niego dostępu, więc po co go prosić?); jednak pliki są środkiem do selektywnego przekazywania informacji.

45

Natknęliśmy się na tej stronie, jak również i wtedy okazało się to możliwe tylko Javascript (bez wtyczek, takich jak ActiveX lub Flash), ale tylko w Chrome:

https://plus.google.com/+AddyOsmani/posts/Dk5UhZ6zfF3

Zasadniczo, dodali wsparcie dla nowy atrybut w pliku wejściowym "webkitdirectory". Można go używać tak:

<input type="file" id="ctrl" webkitdirectory directory multiple/>

To pozwala na wybór katalogów. Ten atrybut wielokrotny jest dobrym wyborem w przeglądarkach obsługujących wiele plików, ale nie w wyborze katalogu.

Po wybraniu katalogu pliki są dostępne za pośrednictwem obiektu dom dla formantu (document.getElementById ('ctrl')), podobnie jak w przypadku wielu atrybutów. Przeglądarki dodają rekurencyjnie wszystkie pliki z wybranego katalogu do tej listy.

można już dodać atrybut katalogu, a także w przypadku, gdy zostanie znormalizowana w pewnym momencie (nie mogłem znaleźć żadnych informacji odnośnie tego)

+3

Należy jednak pamiętać, że blokuje to możliwość wybierania pojedynczych plików. Aktualne, jedyny sposób na wybór zarówno plików, jak i katalogów przy użyciu "standardowych" sposobów (non-Flash, nie Silverlight, itp.) polega na zapewnieniu dwóch oddzielnych elementów wejściowych. –

+0

@NikolayMelnikov lub przeciągnij i upuść – antonj

+0

Jak mogę zaakceptować wiele rzeczy, w tym pliki i foldery? – Casper

-1

Eventhough jest to stary pytanie, może to komuś pomóc.

Możemy wybrać wiele plików podczas przeglądania pliku przy użyciu „wielokrotność”

<input type="file" name="datafile" size="40" multiple> 
Powiązane problemy