2012-01-30 17 views
6

Pracuję nad aplikacją internetową, która odczytuje dane z zestawu plików tekstowych i mapuje je do bazy danych MySQL.Przeglądanie stron po stronie serwera

Obecnie formularz wymaga ręcznego wprowadzania ścieżki pliku, ale chciałbym dodać do tego pola plik do wyboru, aby ta część konfiguracji była trochę mniej żmudna.

Rozwiązania, które znalazłem pozwalają na wybór jednego pliku, ale szukam takiego, który pozwoli na użycie wzorców wprowadzania, ponieważ większość naszych zadań wymaga od nas wyciągnięcia wielu plików z serwera w jednym udać się.

Każda pomoc w tej sprawie jest bardzo doceniana.

+0

Spójrz na https://github.com/moskiteau/backbone-filetree – moskiteau

Odpowiedz

13

Trzeba było wielu poszukiwań i trochę pracy, ale znalazłem dość realną odpowiedź na to.

Największym problemem, z którym miałem do czynienia, było przeglądanie plików po stronie serwera. Znalazłem wtyczkę jQuery pod numerem A Beautiful Site, która rozwiązała ten problem.

Jest to przeglądarka plików AJAX ze skryptami łączącymi po stronie serwera dla JSP, PHP, ASP i innych.

I zbudował drzewo plików webapp za pomocą następującego skryptu:

$(document).ready(function() { 
    $('#loadFolderTree').fileTree({ 

     root: '/server_root/subfolder/tree_root', 
     script: '/js/jquery_file_tree/connectors/jqueryFileTree.jsp', 
     multiFolder: false, 

    });  
    }); 

Zaletą tego scenariusza jest to, że zwraca wybraną ścieżkę jako ciąg znaków. Z niewielkimi dodatkami do domyślnej obsługi plików skryptu, byłem w stanie napisać wracającą ścieżkę do odpowiedniego pola formularza z następującego kodu:

}, function(file) { 
      var loadPat = document.getElementById("loadPattern"); 
      loadPat.value = file.replace("/server_root/subfolder/tree_root/", ""); 

Ponieważ forma jest już zbudowany do obsługi plików w stosunku do korzenia , nie ma potrzeby drukowania całej ścieżki, więc ten ostatni fragment kodu przycina ścieżkę do katalogu głównego i ustawia wartość formularza na pozostałą zawartość ciągu.

Co najważniejsze, zwracany ciąg jest edytowalny w formie, która pozwala użytkownikom zmienić powrót pliku input-file-1.txt do pliku wejściowego * .txt i zaimportować wiele plików w jednym przebiegu.

Jest to wynik końcowy:

$(document).ready(function() { 
    $('#loadFolderTree').fileTree({ 

     root: '/server_root/subfolder/tree_root', 
     script: '/js/jquery_file_tree/connectors/jqueryFileTree.jsp', 
     multiFolder: false, 

    }, function(file) { 
     var loadPat = document.getElementById("loadPattern"); 
     loadPat.value = file.replace("/server_root/subfolder/tree_root/", ""); 

    });  
    }); 
+0

Wygląda na to nikt nie utrzymuje go od 2008 roku, ale nadal wydaje wykonać pracę dobrze. –

+0

Przyjdę do tego 5 lat później (!), Ale zastanawiałem się, czy odniosłeś z tego wielki sukces? Użyłem tego dla identycznej sytuacji, ale kiedy wskażę jqueryfiletree w naszej lokalizacji sieciowej, pliki/foldery nie są w porządku alfabetycznym po kilku warstwach. Jednak wskazanie na moim lokalnym dysku C: \ działa idealnie. –

+0

Tak, w rzeczywistości nadal używamy go w naszej aplikacji. Zauważyłem podobny problem z sortowaniem niedługo po tym, jak nasza lista plików zaczęła się wydłużyć. Musiałem zmodyfikować złącze jsp, którego używałem do ręcznego sortowania przed zwróceniem listy do przeglądarki. – Mike