2008-09-19 9 views
13

Je veux une liste de liens hypertexte sur une page html de base, qui pointe vers des fichiers sur notre intranet d'entreprise.Comment ouvrir un fichier externe à partir du code HTML

Lorsqu'un utilisateur clique sur le lien, je veux que le fichier s'ouvre. Ce sont des tableurs Excel, et il s'agit d'un environnement intranet, donc je peux compter sur Excel.

J'ai essayé deux choses:

  1. La chose évidente et simple:
<a href="file://server/directory/file.xlsx">Click me!</a> 
  1. Une option que j'ai trouvé dans un Google Recherche:
<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> 

Je sais que c'est une question très simple, mais j'apprécierais toute aide que je pourrais recevoir.

Modifier: Toutes les suggestions qui fonctionnent à la fois dans IE et Firefox?

+0

Quel est exactement le problème? Ces deux semblent être comme ils devraient fonctionner (bien, je don Je ne connais pas beaucoup VBScript, mais en supposant ce code est correct ...). – Asmor

Répondre

13

Essayez de formater le lien comme (semble infernale, mais cela fonctionne dans Firefox 3 sous Vista pour moi):

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

Génial. Je savais que ça devait être quelque chose de simple. Fonctionne pour moi dans Ffx et IE. J'utilise XP, pour le compte rendu. – JosephStyons

+0

Je pense que vous pouvez avoir un trop de barres obliques. Vous avez besoin de 2 pour le fichier: // protocole et 2 pour le nom de serveur // SERVEUR /. –

+0

Fonctionne pour moi avec les cinq barres obliques, pas avec les quatre que vous attendez. Ne me demandez pas pourquoi ... –

2

<a href="file://server/directory/file.xlsx" target="_blank"> si je me souviens bien.

+0

Fonctionne dans IE, mais pas firefox. Aller essayer la suggestion par typemismatch. – JosephStyons

-1

Votre première idée était autrefois le chemin, mais je l'ai aussi remarqué des problèmes qui font cela en utilisant Firefox, essayez un http droit: // dans le fichier - href = « http://server/directory/file.xlsx »

+0

Ne fonctionne pas dans IE ou Firefox, pour moi. – JosephStyons

+2

http: // est un protocole différent – jitidea

0

Un simple lien vers le fichier est la solution évidente ici. Vous devez juste faire en sorte que le lien soit valide et qu'il pointe vraiment vers un fichier ...

+0

Je suis d'accord. Alors, comment puis-je implémenter un lien aussi simple en HTML? – JosephStyons

1

Si le partage de fichiers n'est pas ouvert à tout le monde, vous devrez le servir en arrière-plan à partir du système de fichiers via le serveur web.

Vous pouvez utiliser quelque chose comme this "ASP.Net Serve File For Download" example (copie archivée de 2).

+0

Dans ce cas, l'authentification est déjà en cours avant d'accéder à cette page Web. Toute personne qui arrive ici devrait avoir accès à ces fichiers et au répertoire dans lequel ils sont stockés. Je veux vraiment garder cela simple. – JosephStyons

1

Vous devrez peut-être un «/» supplémentaire

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

Essayé sans succès. – JosephStyons

+0

Mais un total de cinq "/" s travaillé! Vous étiez proche :) – JosephStyons

1

Si votre serveur Web est IIS, vous devez vous assurer que le nouveau Bureau 2007 (je vois le suffixe xlsx) types MIME sont ajoutés à la liste de types mime dans IIS, sinon il refusera de servir le type de fichier inconnu.

Voici un lien pour vous dire comment:

Configuring IIS 6 for Office 2007

0

Vous allez devoir compter sur la machine de chaque individu ayant les associations de fichiers correctes. Si vous essayez d'ouvrir l'application à partir de JavaScript/VBScript dans une page Web, l'application générée est soit elle-même en sandbox (ce qui signifie des autorisations réduites), soit il y aura beaucoup d'invites de sécurité.

Ma suggestion est de se tourner vers le serveur SharePoint pour celui-ci.C'est quelque chose que nous savons qu'ils font et que vous pouvez modifier en place, mais la question est de savoir comment ils parviennent à le faire. Ma conjecture est l'intégration directe avec Office. De toute façon, ce n'est pas quelque chose que l'Internet est conçu pour faire, car je suppose que vous voulez qu'ils éditent le document original et pas simplement créer leur propre copie (ce qui est le comportement par défaut de file://

Donc selon vos options, il est possible de créer une application côté client qui s'installe sur toutes les machines clientes et répond ensuite à un gestionnaire de fichiers particulier qui dit d'ouvrir cette application sur le serveur de fichiers. vraiment importe qui le faisait puisque tous les navigateurs vous transmettaient simplement la demande.Vous devez créer votre propre gestionnaire comme fileserver://

Questions connexes