2012-01-30 19 views
6

Estoy trabajando en una aplicación web que lee datos de un conjunto de archivos de texto y los mapea en una base de datos MySQL.Exploración de archivos del lado del servidor

Actualmente, el formulario requiere la entrada manual de la ruta del archivo, pero me gustaría agregar un selector de archivos a este campo para que esa parte de la configuración sea menos tediosa.

Las soluciones que he encontrado permiten la selección de un solo archivo, pero estoy buscando uno que permita el uso de patrones de entrada, ya que la mayoría de nuestros trabajos requieren que retiremos varios archivos del servidor en uno ir.

Cualquier ayuda en esta materia es muy apreciada.

+0

Tome un vistazo a https://github.com/moskiteau/backbone-filetree – moskiteau

Respuesta

13

Me llevó mucho buscar y trabajar, pero encontré una respuesta razonablemente viable para esto.

El mayor problema al que me enfrenté fue la búsqueda de archivos del lado del servidor. Encontré un complemento jQuery en A Beautiful Site que resolvió ese problema.

Es un explorador de archivos AJAX con scripts de conector del lado del servidor para JSP, PHP, ASP y otros.

que construyeron árbol de ficheros del módulo web utilizando el siguiente script:

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

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

    });  
    }); 

Lo bueno de este guión es que devuelve la ruta del archivo seleccionado como una cadena. Con algunas adiciones menores en el manejo de archivos por defecto del guión, yo era capaz de escribir la ruta del archivo de regresar al campo de formulario apropiado con el siguiente código:

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

Dado que el formulario ya está construida para manejar los archivos relativos a la raíz , no hay necesidad de imprimir la ruta completa, por lo que esta última parte del código recorta la ruta hasta el directorio raíz y establece el valor del formulario en el contenido restante de la cadena.

Lo más importante es que la cadena devuelta se puede editar en la forma que permite a los usuarios cambiar el retorno de input-file-1.txt al archivo de entrada * .txt e importar múltiples archivos en una ejecución.

Este es el resultado final:

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

Parece que nadie ha mantenido desde 2008, pero todavía parece para hacer bien el trabajo. –

+0

Viniendo a esto 5 años después (!) Pero me preguntaba si tuviste mucho éxito con esto? Lo he usado para una situación idéntica, pero cuando señalo jqueryfiletree en nuestra ubicación de red, los archivos/carpetas no están en orden alfabético después de algunas capas. Sin embargo, apuntando a mi unidad C: \ local funciona a la perfección. –

+0

Sí, de hecho todavía lo usamos en nuestra aplicación. Noté un problema similar con la clasificación no mucho después de que nuestra lista de archivos comenzó a alargarse. Tuve que modificar el conector jsp que solía hacer una clasificación manual antes de devolver la lista al navegador. – Mike

Cuestiones relacionadas