2011-04-26 293 views
22

¿Hay alguna manera de incorporar un de trabajo a una carpeta compartida de Windows en una página HTML? P.ej. un enlace al \\server\folder\path?URL de una carpeta compartida de Windows

Para simplificar, digamos que la página se abrirá en una máquina Windows (y en la misma intranet donde se encuentra la server, por supuesto.)

He probado unos cuantos trucos con file:// esquema, pero ninguno de ellos parecía funcionar.

Respuesta

18

Creo que hay dos cuestiones:

  1. Es necesario para escapar de las barras.
  2. Seguridad del navegador.

Explicación:

  1. he comprobado uno de los míos, tengo el patrón:

    <a href="file://///server01\fshare\dir1\dir2\dir3">useful link </a> 
    

    Tenga en cuenta que terminamos con 5 barras después del protocolo (file:)

  2. Firefox intentará evitar la creación de scripts entre sitios. Mi solución fue modificar prefs.js en el directorio de perfil. Va a añadir dos líneas:

    user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess"); 
    user_pref("capability.policy.localfilelinks.sites", "http://mysite.company.org"); 
    
+1

Sí, la seguridad del navegador es el problema. Pero no sé si el navegador de destino es Firefox. ¿Alguna otra idea? – alex

+0

Eche un vistazo a la respuesta a una pregunta similar, donde IE debería funcionar, Firefox puede ajustarse, pero otros navegadores principales lo bloquean. [stackoverflow.com/questions/855614](http://stackoverflow.com/questions/855614) – Bill

-2

Depende de cómo quiera incorporarlo. El escenario 1. Haga clic en una ventana 2. explorador enlace aparecido

<a href="\\server\folder\path" target="_blank">click</a> 

Si existe la necesidad de una interfaz de usuario elegante - entonces será apenas servir como una solución.

+4

Creo que esto no funcionará a menos que el HTML en sí mismo esté cargado con el esquema de URI 'file: //'. Al menos no funciona con Chrome basado en WebKit. – alex

1

Si se le permite ir más lejos a continuación, instalaciones JavaScript/HTML - Me gustaría utilizar el servidor web Apache para representar a su lista de directorios a través de http.

Si esta solución es adecuada. estos son los pasos:

  1. descarga servidor Apache hhtp de uno de los espejos http://httpd.apache.org/download.cgi

  2. descomprimir/instalación (si es msi) al directorio por ejemplo, C: \ opt \ Apache (la instrucción es para ventanas)

  3. mapa del forlder red como una unidad local en las ventanas (\ \ carpeta del servidor de digamos unidad H :)

  4. conf abierta/httpd.conf

  5. asegúrese de que la siguiente línea está presente y no comentado

    LoadModule autoindex_module/mod_autoindex.por lo

  6. configuración de Agregar directorio

<Directory "H:/path">

Options +Indexes

AllowOverride None

Order allow,deny

Allow from all

</Directory> 7. Inicie el servidor web y asegúrese de que la lista del directorio de la carpeta remota esté disponible en http. golpe localhost/ruta 8. Uso de un marco dentro de su página web para acceder a la lista

Lo que se perdió: 1. mignt que necesitan una configuración más elegante para el nombre de host, se refieren a documentos de Apache Web Server. Registre el nombre de host en el servidor DNS

  1. la asignación a la unidad de red podría no funcionar, no lo compruebo. Como posible resolución: aloje su servidor web en la misma máquina que el servidor smb.
8

URI de protocolo de archivos son como este archivo

: // [HOST]/[PATH]

es por eso que a menudo se ve el archivo URLs como este (3 barras diagonales) file: /// C : \ ruta ...

lo tanto, si el anfitrión es server01, desea

file: // server01/carpeta/ruta ....

Esto es de acuerdo a la página wikipedia en el archivo: // protocolos y verifica con el método Uri.IsWellFormedUriString de .NET.

Cuestiones relacionadas