¿Cómo puedo crear un selector de directorio en la página html?
Si utilizo el elemento del archivo de entrada, puedo seleccionar solo el archivo, pero necesito seleccionar el directorio.
Necesito hacer esto porque el usuario debe seleccionar una ruta correcta dentro de su computadora.
¿Alguna solución?Selector de directorio en la página HTML
Respuesta
No se puede hacer en HTML/JavaScript puro por razones de seguridad.
La selección de un archivo para cargar es lo mejor que puede hacer, y aun así no obtendrá su ruta original completa en los navegadores modernos.
Es posible que pueda armar algo utilizando Java o Flash (por ejemplo, usando SWFUpload como base), pero es mucho trabajo y trae problemas de compatibilidad adicionales.
Otra idea sería la apertura de un iframe
mostrando duro del usuario C:
(o lo que sea), pero incluso si eso es posible hoy en día (podría ser bloqueada por razones de seguridad, no he probado en mucho tiempo), será imposible para tu web sitio para comunicarse con el iframe (nuevamente por razones de seguridad).
¿Para qué necesita esto?
Lo necesito para seleccionar una ruta dentro de la computadora, no para subirla. Uso esta ruta para guardar el archivo, pero con la función JSP. – enfix
@enfix ¿cómo se guardará un archivo de un servidor JSP en una ruta determinada en la computadora local del usuario? No entiendo. ¿Puedes editar tu pregunta para aclarar? –
Necesito obtener la ruta donde el usuario desea guardar los archivos, pero los archivos se guardan con la invocación de la función java dentro de la página JSP. Esta función necesita una ruta donde guardar archivos. Eso es todo. Guardo más de un archivo, necesito crear carpetas y otras cosas con esta función java. – enfix
El guion es inevitable.
Esto no se proporciona debido al riesgo de seguridad. <input type='file' />
es el más cercano, pero no es lo que está buscando.
Pago this example que utiliza Javascript para lograr lo que desea.
Si el sistema operativo es Windows, puede usar VB scripts para acceder a los archivos de control central para buscar una carpeta.
Prueba de esto, creo que va a trabajar para usted:
<input type="file" webkitdirectory directory multiple/>
Usted puede encontrar la demostración de esto en https://plus.google.com/+AddyOsmani/posts/Dk5UhZ6zfF3, y si necesita más información puede encontrarla here.
Tengo la impresión de que su sugerencia funciona para cargar la carpeta, sin obtener su ruta. –
Esto funciona en firefox pero no en Chrome. –
https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory para documentación. Se llama 'no estándar '. Y efectivamente carga los archivos contenidos recursivamente (?), También expone el nombre de la carpeta. Esto hará para la mayoría de los casos – Blauhirn
En caso de que usted sea el servidor y el usuario (por ejemplo, está creando una aplicación que funciona mediante el navegador y necesita elegir una carpeta) intente llamar al JFileChooser
desde el servidor cuando se hace clic en el navegador
JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new java.io.File("."));
chooser.setDialogTitle("select folder");
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
chooser.setAcceptAllFileFilterUsed(false);
Este código es cortado con tijeras de here
hice un trabajo alrededor. Tenía un cuadro de texto oculto para mantener el valor. Luego, en form_onsubmit, copié el valor de la ruta, menos el nombre del archivo en la carpeta oculta. Luego, configure el cuadro fileInput en "". De esa forma, no se carga ningún archivo. No recuerdo el evento del control fileUpload. Quizás en cambio. Ha sido un tiempo. Si hay un valor, analizo el nombre del archivo y vuelvo a colocar la carpeta en la caja. Por supuesto, usted validaría que el archivo sea un archivo válido. Esto le daría la carpeta de la estación de trabajo de los clientes.
Sin embargo, si desea reflejar las rutas del servidor, eso requiere un enfoque de codificación completamente diferente.
El usuario debería estar entrenado para elegir cualquier archivo. Está fastidiado. Pero, funciona en un apuro. Add y onchange = "parseFilePath()" al control FileUpload. function parseFileUploadPath() { var upl = document.getElementById ("<% = this.FileUpload1.ClientID%>"); if (upl.value! = "") { var pos = upl.value.lastIndexOf ("\\") document.getElementById ("<% = this.TextBox1.ClientID%>"). Value = upl. value.substr (0, pos) } } – user8004777
Lo sentimos, HTML más completo. – user8004777
- 1. Abrir un selector de directorio en C#
- 2. hallazgo en la página HTML
- 3. Encabezado y pie de página personalizados en la página html
- 4. Insertar página externa html en una página html
- 5. Llamar a PHP en la página html
- 6. Modelos 3D en la página HTML
- 7. ¿Cómo cargar la página html local con intención en Android?
- 8. Recarga de la página Force con anclajes html (#) - HTML & JS
- 9. variable de .jsp a la página html
- 10. Fuerza la posición de desplazamiento de la página hacia arriba al actualizar la página en HTML
- 11. Cómo dejar de carga de la página en la página HTML estática
- 12. HTML 5 transiciones de página
- 13. Visualización de página única en HTML: SSRS
- 14. Selección html interior en un selector de jQuery
- 15. Margen al imprimir la página html
- 16. Borrar la página HTML con JavaScript
- 17. QSettings - El selector de archivos debe recordar el último directorio
- 18. Descargar la página html y su contenido
- 19. pregunta sobre la inclusión de página HTML en PHP
- 20. Buscar todos los nodos de texto en la página HTML
- 21. Ver URL de la página web actual (dinámico) en HTML
- 22. ¿Puedo forzar un salto de página en la impresión HTML?
- 23. Dos versiones diferentes de JQuery en la misma página HTML
- 24. Manejo de sesión en la página HTML usando JavaScript
- 25. Cómo leer un archivo TXT en el Directorio de la página del servidor Java
- 26. jQuery UI "$ (" # selector de fechas ")
- 27. Symfony2 selector de idioma
- 28. Cocoa WebView - Cargando una página HTML local
- 29. selector de Jquery, ¿debería especificar el tipo de etiqueta html?
- 30. Dirección ltr en una rtl página HTML
Ahora es posible con HTML5, al menos en chrome: http: // stackoverflow.com/questions/24718769/html5-javascript-how-to-get-the-selected-folder-name – mtyson