2008-09-19 28 views
13

Quiero una lista de hipervínculos en una página html básica, que apunta a los archivos en nuestra intranet corporativa.Cómo abrir un archivo externo desde HTML

Cuando un usuario hace clic en el enlace, quiero que se abra el archivo. Son hojas de cálculo de Excel, y este es un entorno de intranet, por lo que puedo contar con que todos tengan Excel instalado.

que he probado dos cosas:

  1. La obvia y simple cosa:
<a href="file://server/directory/file.xlsx">Click me!</a> 
  1. Una opción que encontré en un Google Búsqueda:
<HTML> 
<HEAD> 
    <SCRIPT LANGUAGE=VBScript> 
    Dim objExcel 

    Sub Btn1_onclick() 
    call OpenWorkbook("\\server\directory\file.xlsx") 
    End Sub 

    Sub OpenWorkbook(strLocation) 

    Set objExcel = CreateObject("Excel.Application") 
    objExcel.Visible = true 
    objExcel.Workbooks.Open strLocation 
    objExcel.UserControl = true 
    End Sub 

    </SCRIPT> 
    <TITLE>Launch Excel</Title> 
</HEAD> 
<BODY> 
    <INPUT TYPE=BUTTON NAME=Btn1 VALUE="Open Excel File"> 
</BODY> 
</HTML> 

Sé que esta es una pregunta muy básica, pero agradecería cualquier ayuda que pueda obtener.

Editar: ¿Algún comentario que funcione en IE y Firefox?

+0

¿Cuál es exactamente el problema? Parece que ambos deberían funcionar (bueno, yo no no se mucho de VBScript, pero suponiendo ese código es correcto ...). – Asmor

Respuesta

13

intente formatear el enlace como este (se ve infernal, pero funciona en Firefox 3 en Vista para mí):

<a href="file://///SERVER/directory/file.ext">file.ext</a> 
+0

Impresionante. Sabía que tenía que ser algo simple. Funciona para mí en Ffx e IE. Estoy usando XP, para el registro. – JosephStyons

+0

Creo que en realidad puede tener demasiadas barras. Necesita 2 para el protocolo file: // y 2 para el nombre del servidor // SERVER /. –

+0

Funciona para mí con las cinco barras diagonales, no con las cuatro que esperaría necesitar. No me preguntes por qué ... –

2

<a href="file://server/directory/file.xlsx" target="_blank"> si no recuerdo mal.

+0

Funciona en IE, pero no en Firefox. Voy a probar la sugerencia por typemismatch. – JosephStyons

-1

Su primera idea que solía ser el camino, pero también me he dado cuenta de los problemas que hacen esto usando Firefox, intente una recta http: // al expediente - href = 'http://server/directory/file.xlsx'

+0

No funciona en IE o Firefox, para mí. – JosephStyons

+2

http: // es un protocolo diferente – jitidea

0

Un simple enlace al archivo es la solución obvia aquí. Solo tiene que asegurarse de que el enlace sea válido y que realmente apunte a un archivo ...

+0

Estoy de acuerdo. Entonces, ¿cómo implemento un enlace tan simple en HTML? – JosephStyons

1

Si el uso compartido de archivos no está abierto para todo el mundo, deberá enviarlo en segundo plano desde el sistema de archivos a través de el servidor web.

Puede usar algo como this "ASP.Net Serve File For Download" example (copia archivada de 2).

+0

En este caso, la autenticación ya se está realizando antes de que lleguen a esta página web. Cualquiera que llegue aquí debería tener acceso a estos archivos y al directorio en el que están almacenados. Realmente quiero mantener esto simple. – JosephStyons

1

Es posible que necesite un extra "/"

<a href="file:///server/directory/file.xlsx">Click me!</a> 
+0

Probado sin éxito. – JosephStyons

+0

¡Pero un total de cinco "/" funcionó! Estabas cerca :) – JosephStyons

1

Si el servidor Web es IIS, es necesario asegurarse de que el nuevo Office 2007 (veo el sufijo xlsx) tipos MIME se agrega a la lista de tipos mime en IIS, de lo contrario se negará a servir el tipo de archivo desconocido.

Aquí hay un enlace que le diga cómo:

Configuring IIS 6 for Office 2007

0

Tendrás que confiar en que la máquina de cada persona tenga las asociaciones de archivos correctas. Si intenta abrir la aplicación desde JavaScript/VBScript en una página web, la aplicación generada se almacenará en la zona de pruebas (es decir, se reducirán los permisos) o se generarán muchas solicitudes de seguridad.

Mi sugerencia es buscar en el servidor de SharePoint para este.Esto es algo que sabemos que hacen y que puedes editar en el lugar, pero la pregunta es cómo logran lograrlo. Mi suposición es la integración directa con Office. De cualquier manera, esto no es algo para lo que Internet está diseñado, porque supongo que quiere que edite el documento original y no simplemente que cree su propia copia (que es lo que sería el comportamiento predeterminado de file://.

Por lo tanto, dependiendo de sus opciones, es posible crear una aplicación del lado del cliente que se instale en todas las máquinas cliente y luego responda a un manejador de archivos en particular que diga abrir esta aplicación en el servidor de archivos. realmente importa quién lo estaba haciendo, ya que todos los navegadores simplemente le entregarían la solicitud. Tendría que crear su propio controlador como fileserver://.

Cuestiones relacionadas