2012-01-30 17 views
6

Sto lavorando a un'app Web che legge i dati da una serie di file di testo e li associa a un database MySQL.Navigazione file lato server

Attualmente, il modulo richiede l'immissione manuale del percorso del file, ma vorrei aggiungere un selettore di file a questo campo per rendere un po 'meno noiosa quella parte del setup.

Le soluzioni che ho trovato consentono la selezione di un singolo file, ma ne sto cercando uno che consenta l'utilizzo di schemi di input, poiché la maggior parte dei nostri lavori ci richiede di estrarre più file dal server in uno solo partire.

Qualsiasi aiuto in questa materia è molto apprezzato.

+0

Date un'occhiata a https://github.com/moskiteau/backbone-filetree – moskiteau

risposta

13

Ci sono volute molte ricerche e alcune soluzioni, ma ho trovato una risposta ragionevolmente valida per questo.

Il problema più grande che ho dovuto affrontare era la ricerca di file sul lato server. Ho trovato un plugin jQuery a A Beautiful Site che ha risolto il problema.

È un browser di file AJAX con script di connessione lato server per JSP, PHP, ASP e altri.

ho costruito albero dei file del webapp utilizzando il seguente script:

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

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

    });  
    }); 

La cosa bella di questo script è che restituisce il percorso del file selezionato come stringa. Con alcune aggiunte minori per la gestione dei file di default dello script, sono stato in grado di scrivere il percorso del file restituito al campo apposito modulo con il seguente codice:

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

Dal momento che il modulo è già costruito per gestire i file relativo alla radice , non è necessario stampare l'intero percorso, quindi questo ultimo pezzo di codice taglia il percorso fino alla directory radice e imposta il valore del modulo sul contenuto rimanente della stringa.

Ancora più importante, la stringa restituita è modificabile nel modulo che consente agli utenti di modificare un ritorno di input-file-1.txt in file di input * .txt e di importare più file in una sola esecuzione.

Questo è il risultato finale:

$(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

Sembra che nessuno ha mantenuto dal 2008, ma sembra ancora per fare il lavoro bene. –

+0

Venendo a questo 5 anni dopo (!) Ma mi chiedevo se avessi avuto molto successo con questo? Ho usato questo per una situazione identica, ma quando punto jqueryfiletree nella nostra posizione di rete i file/cartelle non sono in ordine alfabetico dopo pochi strati. Comunque puntando al mio C: \ drive locale funziona perfettamente. –

+0

Sì, in effetti lo usiamo ancora nella nostra applicazione. Ho notato un problema simile con l'ordinamento non molto tempo dopo che la nostra lista di file iniziava ad allungarsi. Ho dovuto modificare il connettore jsp che ho usato per fare un po 'di ordinamento manuale prima di restituire l'elenco al browser. – Mike