2009-05-13 21 views
71

Necesito permitir que los usuarios de una aplicación abran una carpeta haciendo clic en un enlace dentro de una página web. La ruta de la carpeta está en la red y se puede acceder desde cualquier lugar. Probablemente estoy seguro de que no hay una manera fácil de hacerlo, pero ¿quizás estoy equivocado?¿Cuáles son las formas de hacer que un enlace html abra una carpeta?

+3

He respondido a continuación; este es un requisito común de las aplicaciones web empresariales que es casi imposible debido a una seguridad equivocada (debería ser posible habilitar enlaces de archivos en páginas http de confianza). Solo he probado extensamente en Windows. –

Respuesta

85

¿Desea abrir una carpeta compartida en el Explorador de Windows? Es necesario utilizar un enlace file:, pero hay advertencias:

  • Internet Explorer funcionará si el enlace es una ruta UNC convertido (file://server/share/folder/).
  • Firefox funcionará si el enlace está en su propia forma destrozada usando cinco barras diagonales (file://///server/share/folder) y el usuario tiene disabled the security restriction on file: links in a page served over HTTP. Afortunadamente IE también acepta el formulario de enlace mutilado.
  • No se puede convencer a Opera, Safari y Chrome de que abran un enlace file: en una página servida a través de HTTP.
+4

en IE solo si la ruta UNC y el sitio web que contiene el enlace están en el mismo dominio, es decir, solo en la intranet. –

+4

Creo que esto ya no es correcto: las versiones más nuevas de IE parecen bloquear este comportamiento al igual que Chrome/Safari/etc. – ZeekLTK

+1

Acabo de probar esto en IE 11 y, de hecho, puede abrir un archivo local sin descargarlo (como en abrir una ruta de archivo ya existente). Esto todavía no existe en Chrome. – Hohohodown

4

asegúrese de que sus permisos de carpeta se establecen de manera que se permita un listado de directorio a continuación, sólo señalar su ancla a esa carpeta usando chmod 701 (que puede ser arriesgado sin embargo) por ejemplo

<a href="./downloads/folder_i_want_to_display/" >Go to downloads page</a> 

asegurarse de que usted no tiene index.html ningún archivo de índice en ese directorio

+0

Esta respuesta funciona. La parte del "listado de directorios permitido" es muy importante. Si no está permitido, puede habilitarlo pero es diferente para cada aplicación de servidor. – Travis

4

El URL file://[servername]/[sharename] debe abrir una ventana del explorador en la carpeta compartida de la red.

+1

no funciona en Chrome, funciona en IE – Muflix

2

Usar el archivo: ///// simplemente no funciona si la configuración de seguridad está configurada incluso en un nivel moderado.

Si solo desea que los usuarios puedan descargar/ver archivos * ubicados en una red o compartir, puede configurar un Directorio virtual en IIS. En la pestaña Propiedades, asegúrese de que esté seleccionado "Un recurso compartido ubicado en otra computadora" y "Conectar como ..." es una cuenta que puede ver la ubicación de la red.

Enlace al directorio virtual desde su página web (por ejemplo, http://yoursite/yourvirtualdir/) y esto abrirá una vista del directorio en el navegador web.

* Puede permitir permisos de escritura en el directorio virtual para permitir a los usuarios agregar archivos pero no probarlos y asumir que los permisos de red anularán esta configuración.

+0

Esto es relevante hoy en día, ya que Chrome y las versiones más nuevas de IE bloquearán el acceso a archivos locales: // recursos de páginas web que no son archivos. Además, se puede configurar para que se ejecute en IIS Express, aunque se debe agregar y ejecutar manualmente. – Schmuli

1

También puede copiar la dirección del enlace y pegarlo en una nueva ventana para moverse por la seguridad. Esto funciona en Chrome y Firefox, pero es posible que tengas que agregar barras en Firefox.

Cuestiones relacionadas