link - como hacer enlaces con botones en html
Cómo abrir un archivo externo desde HTML (8)
Quiero una lista de hipervínculos en una página html básica, que apunta a los archivos en nuestra intranet corporativa.
Cuando un usuario hace clic en el enlace, quiero que se abra. 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.
He intentado dos cosas:
- Lo obvio y simple:
<a href="file://server/directory/file.xlsx">Click me!</a>
- Una opción de vbscript que encontré en una búsqueda de Google:
<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: ¿Alguna sugerencia que funcione tanto en IE como en Firefox?
Si su servidor web es IIS, debe asegurarse de que los nuevos tipos mime de Office 2007 (veo el sufijo xlsx) se agreguen a la lista de tipos de mime en IIS, de lo contrario, se rechazará el tipo de archivo desconocido.
Aquí hay un enlace para decirle cómo:
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 mirar al 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 que Internet está diseñado para hacer, porque supongo que usted quiere que ellos editen el documento original y no simplemente creen su propia copia (que es lo que sería el comportamiento predeterminado de file://
.
Entonces, dependiendo de sus opciones, es posible crear una aplicación del lado del cliente que se instale en todas las máquinas de sus clientes y luego responda a un manejador de archivos particular que diga abrir esta aplicación en el servidor de archivos. Entonces realmente no importaría 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://
.
Trate de formatear el enlace de esta manera (parece infernal, pero funciona en Firefox 3 en Vista para mí):
<a href="file://///SERVER/directory/file.ext">file.ext</a>
Tu primera idea solía ser el camino, pero también he notado problemas al usar Firefox, prueba un http recta // al archivo - href = '' http: //server/directory/file.xlsx ''
Un simple enlace al archivo es la solución obvia aquí. Solo tienes que hacer que el enlace sea válido y que realmente apunte a un archivo ...
Es posible que necesite un "/" adicional
<a href="file:///server/directory/file.xlsx">Click me!</a>
<a href="file://server/directory/file.xlsx" target="_blank">
si no recuerdo <a href="file://server/directory/file.xlsx" target="_blank">
.
Si el recurso compartido de archivos no está abierto para todo el mundo, deberá enviarlo en segundo plano desde el sistema de archivos a través del servidor web.
Puede usar algo como este ejemplo "ASP.Net Serve File For Download" (copia archivada de 2 ).